usando php qeda muy bonito.. pero al tratar de hacerlo con jQuery y Ajax para no tener qe recargar la pagina por responder un comentario se me empiezan a presentar los problemas
pude hacer funcionar un sistema de creacion de mensajes, pero este no tenia ningun tipo de filtro ni parametro, simplemente mostraba todos los registros de la tabla de la db y los imprimia, y yo podia agregar mas desde un input qe coloqe.
hasta ahi pude llegar... pero el problema es qe para mi fin real necesito qe se generen varios mensajes, y a su vez, se generen sus comentarios, cada uno de estos elementos tiene un id qe di con PHP para diferenciarlos y asi poder capturar cada uno por separado con jQuery.
por ejemplo:
Código PHP:
echo '<input type="submit" value="Comentar" name="comentar"
onClick="inicializarEventos('.$i.')" id="enviar_comentario_'.$i.'" />';
pero al qerer capturar ese id con jQuery, no funciona. simplemente no se ejecuta nada del codigo jQuery.
dejo mi codigo completo, si es qe realmente existe alguien con suficiente paciencia xd
index.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php
include("mecanismos/config.php");
?>
<title>Ajax</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="global.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var x;
x=$(document);
x.ready(inicializarEventos);
function inicializarEventos(j)
{
var x;
x=$("#enviar_comentario_"+j);
x.click(presionSubmit(j));
}
function presionSubmit(j)
{
var v=$("#input_comentario_"+j).val();
$.ajax({
async:true,
type: "POST",
dataType: "html",
contentType: "application/x-www-form-urlencoded",
url:"mecanismos/envioComentarioMensajeMuro.php",
data:"texto="+v,
beforeSend:inicioEnvio(j),
success:llegadaDatos(j),
timeout:4000,
error:problemas
});
return false;
}
function inicioEnvio()
{
}
function llegadaDatos(data,j)
{
$("#contenedor_comentarios_"+j).append(data);
}
function problemas()
{
}
</script>
</head>
<body>
<?php
$idPerfil=$_GET["id"];
$conseguirMensajes=mysql_query("SELECT * FROM muro_mensajes WHERE id_perfil=$idPerfil ORDER BY id_mensaje_muro DESC");
$i=0;
echo '<div style="float:left; margin: 50px;padding:10px;">';
while($rowMensaje=mysql_fetch_array($conseguirMensajes))
{
echo '<div style="width: 600px;" id="contenedor_mensaje_'.$i.'">';
$i= $i+1;
echo '<div id="mensaje_'.$i.'" style="float:left;width: 576px; border:padding:10px; margin: 10px 0 10px 0">';
echo 'MENSAJE MURO '.$i.' <br>'.$rowMensaje["mensaje_muro"];
echo '</div>';
$conseguirComentarios=mysql_query("SELECT * FROM comentarios_mensaje_muro WHERE id_mensaje=$rowMensaje[id_mensaje_muro]");
echo '<div class="bloque 2" style="float:left; margin-left: 150px;">';
echo '<div id="contenedor_comentarios_'.$i.'" style="float:left; width: 400px;">';
while($rowComentario=mysql_fetch_array($conseguirComentarios))
{
echo '<div style="width: 97%; margin: 2px 0 0 0; float: left; background: #e9e9e9; padding:5px;" id="comentarios_de_mensaje_'.$i.'">';
echo $rowComentario["comentario"];
echo '</div>';
}
echo '</div>';
echo '<div class="nuevo comentario" style="float:left; width:300px; border: none;">';
echo '<form action="asd.php" method="post">';
echo '<input type="text" name="comentario" size="30" id="input_comentario_'.$i.'" />';
echo '<input type="submit" value="Comentar" name="comentar" onClick="inicializarEventos('.$i.')" id="enviar_comentario_'.$i.'" />';
echo '</form>';
echo '</div>';
echo '</div>'; // Bloque 2
echo '</div>';
}
echo '</div>';
?>
</body>
</html>
envioComentarioMensajeMuro.php
Código PHP:
<?php
include("config.php");
$comentario=$_REQUEST["comentario"];
$id_comentador=$_REQUEST["id_comentador"];
$id_mensaje=$_REQUEST["id_mensaje"];
if($comentario != "")
{
mysql_query("INSERT INTO comentarios_mensaje_muro (comentario, id_comentador, id_mensaje) VALUES ('{$comentario}','{$id_comentador}','{$id_mensaje}')");
echo '<div style="width: 97%; margin: 2px 0 0 0; float: left; background: #e9e9e9; padding:5px;">'.$comentario;.'</div>';
}
?>