Hola a todos, he hecho un blog en ajax que me funciona muy bien, parecido al wordpress, y con base de datos. y y me guarda el nombre, la fecha, el comentario y la ruta de la imagen que guardo en un input type= "file" a la base de datos...
lo unico que quiero y me he cabeseado dias es poder subir la imagen a mi carpeta y despues mostrarla que eso me preocupare yo, pero subir la imagen se me hace un problema, me he cabeseado dias y dias, 
tengo este index  
 Cita:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Database-Enabled AJAX</title>
<link href="css/layout.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/Ajax.js"></script>
<script type="text/javascript" src="js/Page.js"></script>
 
</head>
 
<body onload="Ajax.Request('services/connector.php?method=get', Page.onResponse);">
<div id="layout" align="center">
	<div id="posts"></div>
	<p><input type="button" value="add new post" onclick="Ajax.Request('services/connector.php?method=save', Page.onResponse);" /></p>
	<p><div id="loading"></div></p>
</div>
 
</body>
</html>
    
este mysql_connect (le puse ese define porsiacaso)  
 Cita:  <?php
 
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'ajax4');
 
 
define('IMG_DIR', 'C:\wamp\www\Tutorial_ajax\ajax13\upload');
// Make the connnection and then select the database.
$dbc = @mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect to MySQL: ' . mysql_error() );
mysql_select_db (DB_NAME) OR die ('Could not select the database: ' . mysql_error() );
 
?>
      
este post.class, que maneja todo lo de la base de datos    
 Cita:  <?php
 
class Post
{
	var $table;
 
	function Post()
	{
		require_once('mysql_connect.php');
		$this->table = "webref_ajax";
	}
 
	function dbConnect()
	{
		DEFINE ('LINK', mysql_connect (DB_HOST, DB_USER, DB_PASSWORD));
	}
 
	function get()
	{
		$this->dbConnect();
		$query = "SELECT * FROM $this->table ORDER BY id asc";
		$result = mysql_db_query (DB_NAME, $query, LINK);
 
		$xml = '<?xml version="1.0" encoding="ISO-8859-1" ?>';
		$xml .= '<posts>';
		while($row = mysql_fetch_array($result))
		{
			$xml .= '<post>';
			$xml .= '<id>'. $row['id'] .'</id>';
			$xml .= '<date>'. $row['date'] .'</date>';
			$xml .= '<title><![CDATA['. $row['title'] .']]></title>';
			$xml .= '<description><![CDATA['. $row['description'] .']]></description>';
			$xml .= '<image><![CDATA['. $row['image'] .']]></image>';
			$xml .= '</post>';
		}
		$xml .= '</posts>';
		mysql_close();
 
		return $xml;
	}
 
	function save($id, $title, $description, $image)
	{
		$this->dbConnect();
		$query = "SELECT * FROM $this->table WHERE id='$id'";		
		$result = @mysql_query ($query);
		if (mysql_num_rows($result) > 0)
		{
			$query = "UPDATE $this->table SET title='$title', description='$description', image='$image', date=NOW() WHERE id='$id'";
			$result = @mysql_query($query);
		}
		else
		{
			$query = "INSERT INTO $this->table (title, description, image, date) VALUES ('$title', '$description', '$image', NOW())";
			$result = @mysql_query($query);
		}
		mysql_close();
		return $this->get();
	}
 
	function delete($id)
	{
		$this->dbConnect();
		$query = "DELETE FROM $this->table WHERE id='$id'";
		$result = @mysql_query($query);
		mysql_close();
		return $this->get();
	}
 
}
 
?>
    
este connector que es muy importante por q tiene los get   
 Cita:  <?php
 
	header("Content-Type: application/xml; charset=UTF-8");
	require_once("../classes/Post.class.php");
	$post = new Post();
	echo $post->$_GET['method']($_GET['id'], $_GET['title'], $_GET['description'], $_GET['image']);
 
?>
     
este ajax.js que es que llama al xmlhttprequest clasico   
 Cita:  var Ajax = new Object();
 
Ajax.Request = function(url, callbackMethod)
{
	Ajax.request = Ajax.createRequestObject();
	Ajax.request.onreadystatechange = callbackMethod;
	Ajax.request.open("POST", url, true);
	Ajax.request.send(url);
}
 
Ajax.createRequestObject = function()
{
	var obj;
	if(window.XMLHttpRequest)
	{
		obj = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		obj = new ActiveXObject("MSXML2.XMLHTTP");
	}
	return obj;
}
 
Ajax.CheckReadyState = function(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;
		}
	}
}