me refiero a un entorno jQuery, aunqe no deja de ser javascript =P
lo qe yo qiero (y logre hacerlo usando PHP) es una pagina qe tome la id de un usuario, y muestre su perfil. En este perfil hay mensajes de muro (estilo facebook) qe son mostrados correspondiendo al perfil. Y dentro de esos mensajes de muro, pueden dejarse comentarios
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.'" />';
(donde la variable $i es dicha id unica)
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>';
}
?>