Ver Mensaje Individual
  #17 (permalink)  
Antiguo 29/08/2012, 17:51
Avatar de ananda
ananda
 
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 4 meses
Puntos: 14
Respuesta: Pasar variable PHP a funcion js

He hecho algo así, es un poco complejo así que lo explico un poco al principio: Tengo una lista de comentarios, esta lista también es un formulario, entonces al hacer clic en un comentario se activa una funcion que muestra un div que estaba oculto y hace submit al formulario. El action del formulario le lleva a una funcion jquery ajax que envia el form a otro php llamado 'mostrar.php', pero al parecer no le llegan los datos por post

Código PHP:
Aquí coloco las funciones javascript y jquery:

<script type="text/javascript">

/* Esta primera funcion la ejecuto al hacer clic en un comentario, entonces hago aparecer un div que estaba oculto y activo el formulario el cual le lleva a la funcion de abajo */
function mostrarcomentario(Id) {
      
 if ((document.getElementById("book").style.display) == 'block') {
  document.getElementById("book").style.display = 'none';
 }else{
  document.getElementById("book").style.display = 'block';
 }
 document.formcomentario.submit();
   }
   
/* esta funcion hace que se envie el formulario por jquery ajax de forma que no haga falta recargar la página, que es lo que necesito /*
   function enviar(){
var idcomentario = $("idcomentario").val();
 
 $.ajax({
         url: 'mostrar.php',
         data:'idcomentario='+ idcomentario,
         type: 'post',   
error: function(obj, idcomentario, obj2){
            alert(idcomentario);
         },
         success: function(data){
            loadComent();
         }
      });
};


</script>

/* Esto es donde muestro un listado de comentarios, al hacer clic en uno hago que se muestre un div que está oculto con la funcion "mostrarcomentario();" y al mostrarse trato de hacer que se envie el formulario */
    <div id="wall"> 
            <?php
            $query 
mysql_query("SELECT * FROM comentarios WHERE idperfil= '".mysql_real_escape_string($idperfil)."' ORDER BY fecha DESC");
         
if(
$query == true){
            
?>
         <form action="javascript: enviar();" name="formcomentario" method="post">
            <?php
   
while ($row mysql_fetch_array($query)){
      
      
$english=$row["fecha"];
      
$fecha=strftime('  %d de %B de %Y a las(la) %H:%M',strtotime($english))
      
?>
      
       
      <table id="entradas" onclick="mostrarcomentario();" >
            
         <tr>
            <td style='display:none;'><input type="hidden" name="respuestade" value="<?php echo $idsesion ?>" /></td>
            <td style='display:none;'><input type="hidden" name="idcomentario" value="<?php echo $row['id']?>" /></td>
            <td class="comentario"><?php echo $row['mensaje'?></td>
         </tr><tr>
         <td class="data"><br/><?php echo $fecha?></td>
         </tr>
         
     
      <?php
   
}
?></table></form></div>

Espero que no se hayan perdido, y el error que me sale es que el archivo 'mostrar.php' no ha recibido la variable $_POST["idcomentario"], es decir que no está enviando el formulario. Ojalá podais ayudarme, he estado trabajando mucho en este script y no sé por qué falla, muchas gracias por adelantado!!