Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/07/2011, 20:44
Avatar de gilber966
gilber966
 
Fecha de Ingreso: abril-2010
Mensajes: 117
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Capturar id de un submit, qe tiene por id una variable

Cita:
Iniciado por greenpoop Ver Mensaje
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>';
}
?>
Por que colocas llaves a los variables de la sentencia sql?

('{$comentario}','{$id_comentador}','{$id_mensaje}')");