Buenas tardes, vengo de nuevo con una duda con la que espero me puedan ayudar :)
Bueno hace dias empece a trabajar en un nuevo proyecto tipo blog donde decidi que seria mas estetico insertar comentarios mediante ajax para no actualizar la pagina
consegui este script el cual adapte a mis necesidades
formulario para comentar:
Código PHP:
//<script language="JavaScript" type="text/javascript" src="http://xxxx.com/diseno/ajax.js"></script> (llamo el script ajax)
echo "
<form name=\"nuevoComentario\" action=\"\" onsubmit=\"enviarComentario(); return false\">
<h1>Deja tu Comentario:
<input name=\"id_post\" type=\"text\" value=\"$meme\" style=\"visibility:hidden;width:1px;height:1px;\"/>
<input name=\"usuario\" type=\"text\" value=\"$usuario\" style=\"visibility:hidden;width:1px;height:1px;\"/>
</h1>
<textarea name=\"comentario\" style=\"width:100%;\" rows=\"4\"></textarea>
<input type=\"submit\" name=\"Submit\" value=\" Comentar \" style=\"float:right;\" />
</form>
";
}
echo '<a name="comentarios"><div id="comentarios"></a>';
include('comentarios.php'); //aqui muestra los comentarios ya hechos
echo '</div>';
ajax.js
Código Javascript
:
Ver originalfunction objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function enviarComentario(){
//donde se mostrará lo comentarioss
divResultado = document.getElementById('comentarios');
//valores de los inputs
id_post=document.nuevoComentario.id_post.value;
usuario=document.nuevoComentario.usuario.value;
comentario=document.nuevoComentario.comentario.value;
//instanciamos el objetoAjax
ajax=objetoAjax();
//uso del medotod POST
//archivo que realizará la operacion
ajax.open("POST", "http://xxxx.com/diseno/post.php?comentar",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar comentarioss en esta capa
divResultado.innerHTML = ajax.responseText
//llamar a funcion para limpiar los inputs
LimpiarCampos();
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send("id_post="+id_post+"&usuario="+usuario+"&comentario="+comentario)
}
function LimpiarCampos(){
document.nuevoComentario.comentario.value="";
document.nuevoComentario.id_post.focus();
}
post.php?comentar
Código PHP:
Ver originalinclude("conexion-bd.php");
$id_post = $_POST['id_post'];
$usuario = $_POST['usuario'];
$comentario = $_POST['comentario'];
$sql="INSERT INTO comentarios (id, id_post, usuario, fecha, comentario) VALUES ('', '$id_post', '$usuario', CURDATE(), '$comentario')";
include("comentarios.php");
comentarios.php
Código PHP:
<?php
$id_post = $_GET['meme'];
include("conexion-bd.php");
echo "
<table width=\"100%\">
<tr>
<td width=\"110px\"><b>Usuario</b></td><td align=\"center\"><b>Comentario</b></td>
</tr>";
$sql = mysql_query("SELECT * FROM comentarios ORDER BY id DESC");
while($dato = mysql_fetch_assoc($sql)){
$id_post = $dato['id_post'];
$usuario = $dato['usuario'];
$fecha = $dato['fecha'];
$comentario = $dato['comentario'];
$sql_1 = mysql_query("SELECT * FROM usuarios WHERE usuario = '$usuario'");
while($dato = mysql_fetch_assoc($sql_1)){
$avatar = $dato['avatar'];
$avatar_e = $dato['avatar_e'];
$avatar_e_10 = $dato['avatar_e_10'];
echo "
<tr valign=\"top\">
<td><center>$usuario</center><img src=\"$avatar\" width=\"98px\" height=\"112px\"></td><td><font size=\"3px\">$comentario</font></td>
</tr>
";
}}
echo "</table>";
?>
este sistema funciona bien y me muestra los comentarios al insante al comentar, pero como utilizare este script para todas las variables de los post del blog debo de seleccionar los comentarios de cada post por su id asi que si agrego
WHERE id_post = '$id_post'
en esta linea: $sql = mysql_query("SELECT * FROM comentarios ORDER BY id DESC");
quedaria algo asi: $sql = mysql_query("SELECT * FROM comentarios WHERE id_post = '$id_post' ORDER BY id DESC");
aqui es donde surge el problema, al comentar ya no aparecen los comentarios al instante como pasaba antes

(se insertan correctamente en la base de datos pero no actualizan comentarios.php), pense en actualizar cada sierto tiempo comentarios.php pero me actualiza la pagina completa desde donde hago el include, ya no se que hacer por eso les pido ayuda, consejos, sugerencias o lo que tengan que decir porfavor.
Gracias y Buenas Tardes :)