feyd | Please use Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
This is my Post.class.php:
Code: Select all
<?
class Post
{
var $table;
function Post()
{
require_once('../dbconnection.php');
$this->table = "testtable";
}
function dbConnect()
{
DEFINE ('LINK', mysql_connect (DB_HOST, DB_USER, DB_PASSWORD));
}
function get()
{
$this->dbConnect();
$query = "SELECT * FROM $this->table ORDER BY id desc";
$result = mysql_db_query (DB_NAME, $query, LINK);
$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
$xml .= "<posts>\n";
while($row = mysql_fetch_array($result))
{
$xml .= "<post>\n";
$xml .= "<id>" . $row['id'] . "</id>\n";
$xml .= "<date>" . $row['date'] . "</date>\n";
$xml .= "<title><![CDATA[" . $row['title'] . "]]></title>\n";
$xml .= "<description><![CDATA[" . $row['description'] . "]]></description>\n";
$xml .= "</post>\n";
}
$xml .= "</posts>";
mysql_close();
header("Content-Type: application/xml; charset=UTF-8");
echo $xml;
}
function save($id, $title, $description)
{
$this->dbConnect();
$query = "SELECT * FROM $this->table WHERE id='$id'";
$result = mysql_db_query (DB_NAME, $query, LINK);
if (mysql_num_rows($result) > 0)
{
$query = "UPDATE $this->table SET title='$title', description='$description', date=NOW() WHERE id='$id'";
$result = mysql_db_query (DB_NAME, $query, LINK);
//$result = @mysql_query($query);
}
else
{
$query = "INSERT INTO $this->table (title, description, date) VALUES ('$title', '$description', NOW())";
$result = mysql_db_query (DB_NAME, $query, LINK);
//$result = @mysql_query($query);
}
mysql_close();
$this->get();
}
function delete($id)
{
$this->dbConnect();
$query = "DELETE FROM $this->table WHERE id='$id'";
$result = mysql_db_query (DB_NAME, $query, LINK);
mysql_close();
$this->get();
}
}
?>
Which feeds into my request.js:
Code: Select all
function makeRequest(url)
{
sendRequest(url, onResponse);
}
function sendRequest(url, callbackMethod)
{
request = createRequestObject();
request.onreadystatechange = callbackMethod;
request.open("POST", url, true);
request.send(url);
}
function createRequestObject()
{
if(window.XMLHttpRequest)
{
obj = new XMLHttpRequest();
}
else
{
obj = new ActiveXObject("MSXML2.XMLHTTP");
}
return obj;
}
function checkReadyState(obj)
{
if(obj.readyState == 0) { document.getElementById('loading').innerHTML = "Sending Request..."; }
if(obj.readyState == 1) { document.getElementById('loading').innerHTML = "Loading..."; }
if(obj.readyState == 2) { document.getElementById('loading').innerHTML = "Loading..."; }
if(obj.readyState == 3) { document.getElementById('loading').innerHTML = "Loading..."; }
if(obj.readyState == 4)
{
if(obj.status == 200)
{
document.getElementById('loading').innerHTML = "";
return true;
}
else
{
document.getElementById('loading').innerHTML = "HTTP " + obj.status;
}
}
}
My onResponse function:
Code: Select all
function onResponse()
{
if(checkReadyState(request))
{
document.getElementById('posts').innerHTML = "...";
var response = request.responseXML.documentElement;
var _post = response.getElementsByTagName('post');
if(response == null)
{
document.getElementById('posts').innerHTML = "There are currently no available posts.<br/>Click the \"add a post\" button above to add a new post";
}
var postDisplay = "style='display:block'";
var formPostDisplay = "";
for(var i=0; i<_post.length; i++)
{
var _title = response.getElementsByTagName('title')[i].firstChild.data;
var _description = response.getElementsByTagName('description')[i].firstChild.data
var _date = response.getElementsByTagName('date')[i].firstChild.data;
var _id = response.getElementsByTagName('id')[i].firstChild.data;
if(_title == "" && _description == "")
{
postDisplay = "style='display:none'";
formPostDisplay = "style='display:block'";
}
else
{
postDisplay = "style='display:block'";
formPostDisplay = "style='display:none'";
}
var html = "<div class='post' id='post_"+ i +"' "+ postDisplay +">"
+ "<div class='title' id='title_"+ i +"'>"+ _title +"</div>"
+ "<div class='description' id='description_"+ i +"'>"+ _description +"</div>"
+ "<div class='date' id='date_"+ i +"'>"+ _date +"</div>"
+ "<a href=\"javascript:toggle('"+ i +"');\">edit this post</a><br/>"
+ "</div>"
+ "<div class='post' id='formPost_"+ i +"' "+ formPostDisplay +">"
+ "<div class='title'><input type='text' name='title' id='formTitle_"+ i +"' size='60' value='"+ _title +"'></div>"
+ "<div class='description'><textarea type='text' id='formDescription_"+ i +"' wrap='virtual' cols='60' rows='15'>"+ _description +"</textarea></div>"
+ "<div class='date'>"+ _date +"</div>"
+ "<input type='button' name='cancel' value='cancel' onclick=\"javascript:toggle('"+ i +"');\">"
+ "<input type='button' name='delete' value='delete this post' onclick=\"javascript:deletePost("+ _id +");\">"
+ "<input type='button' name='submit' value='save this post' onclick=\"javascript:saveNewPost("+ _id +","+ i +");\">"
+ "</div>"
+ "<p> </p>";
document.getElementById('posts').innerHTML += html;
}
}
}
As I said, all of this works on my Win 2003 Server, but not on the Linux. I have set up identical tables in MySQL.
feyd | Please use Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]