Foros del Web » Programando para Internet » Javascript »

Pasar variable PHP a funcion js

Estas en el tema de Pasar variable PHP a funcion js en el foro de Javascript en Foros del Web. Hola, tengo un apartado con muchos comentarios y lo que quiero es que al hacer clic en un determinado comentario aparezca ese solo comentario en ...
  #1 (permalink)  
Antiguo 28/08/2012, 16:18
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Pasar variable PHP a funcion js

Hola, tengo un apartado con muchos comentarios y lo que quiero es que al hacer clic en un determinado comentario aparezca ese solo comentario en un div de la misma página.

Tengo pensado hacer algo tipo : onclick="mostrarcomentario($idcomentario);"

Entonces de alguna manera en el div buscar el comentario a partir de ese $idcomentario.

La verdad, ya llevo un rato dándole vueltas pero no encuentro una solución para hacer esto, nunca había hecho algo similar, ojalá alguien pueda ayudarme, muchas gracias por adelantado!
  #2 (permalink)  
Antiguo 28/08/2012, 16:22
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

pero trata solamente de poner así tu código

Tu quieres esto por ejemplo

onclick="mostrarcontenido('COM00015')"

con PHP

debes hacerlo asi

onclick="mostrarcontenido('<?php echo $code; ?>')"
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 28/08/2012, 17:04
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: Pasar variable PHP a funcion js

Ahora tengo esto:

Código PHP:
function mostrarcomentario(Id)


<table name="entradas" id="entradas" onclick="mostrarcomentario('<?php echo $row["id"]; ?>');">
Es decir, el id de la funcion sera el id, y la cuestión ahora es como pasar ese parámetro a una variable php tipo $idcomentario, sabeis como hacerlo? gracias!
  #4 (permalink)  
Antiguo 28/08/2012, 17:05
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

bueno para esto debes usar ajax ya que vas a consultar la información que se encuentra en la BD según supongo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 28/08/2012, 17:11
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Por que tengo que usar ajax? Solo necesito conseguir esa variable. Si necesito ajax, como tengo que usarlo? Es que no entiendo el por que de usar ajax, agradezco tu ayuda!!
  #6 (permalink)  
Antiguo 28/08/2012, 17:18
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

el problema esta que tu quieres enviar una variable de javascript a php en un evento Click, hasta ahi todo se puede pero PHP no va a poder capturar esta variable y procesarla a menos que se haga un Request a la Pagina es decir un submit

O en todo caso explicate mejor para que quieres enviar una variable JAVASCRIPT DESDE UN EVENTO A PHP
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #7 (permalink)  
Antiguo 28/08/2012, 17:21
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Lo que tengo es un sistema de comentarios, y con un while muestro todos los comentarios y lo que quiero es que al hacer clic se muestre en un div ese solo comentario, por eso necesito conseguir el id del comentario al que ha hecho clic
  #8 (permalink)  
Antiguo 28/08/2012, 19:42
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

Bueno entonces no creo que tenga que ver mucho de php supongamos que mi php me deuelve esto

Código HTML:
Ver original
  1. <div id="Comentario1" onclick="mostrar(this)"/>
  2. <div id="Comentario2" onclick="mostrar(this)"/>
  3. <div id="Comentario3" onclick="mostrar(this)"/>
  4.  
  5. <div id="mostrarComentario" />

En donde tu php que genere los ID correlativamente y el evento onclick que lo asigne, OJO es un ejemplo puedes hacerlo de muchas maneras

entonces lo único que tendrías que hacer en JS seria solamente esto

Código Javascript:
Ver original
  1. function mostrar(c){
  2. document.getElementById("mostrarComentario").innerHTML = c.innerHTML;
  3. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 29/08/2012, 05:13
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: Pasar variable PHP a funcion js

Cita:
Iniciado por Dradi7 Ver Mensaje
Bueno entonces no creo que tenga que ver mucho de php supongamos que mi php me deuelve esto

Código HTML:
Ver original
  1. <div id="Comentario1" onclick="mostrar(this)"/>
  2. <div id="Comentario2" onclick="mostrar(this)"/>
  3. <div id="Comentario3" onclick="mostrar(this)"/>
  4.  
  5. <div id="mostrarComentario" />

En donde tu php que genere los ID correlativamente y el evento onclick que lo asigne, OJO es un ejemplo puedes hacerlo de muchas maneras

entonces lo único que tendrías que hacer en JS seria solamente esto

Código Javascript:
Ver original
  1. function mostrar(c){
  2. document.getElementById("mostrarComentario").innerHTML = c.innerHTML;
  3. }
De acuerdo pero ahora me falta el último paso, convertir el c.innerHTML en una variable php para que pueda usarla para hacer la query:

Ahora tengo esto

Código PHP:
 document.getElementById("book").innerHTML = Id.innerHTML;
 Id.innerHTML = '<?php echo "$idcomentario" ?>';

<div id="book">
// Aqui se ha de mostrar una consula a partir de $idcomentario
</div>

<table name="entradas" id="entradas"onclick="mostrarcomentario('<?php echo $row['id']; ?>');"
Sé que la línea de Id.innerHTML = '<?php echo "$idcomentario" ?>'; está mal, pero lo que quiero hacer es eso, convertir lo que hay en el innerHTML en la variable $idcomentario, muchas gracias, ya casi encontramos la solución.
  #10 (permalink)  
Antiguo 29/08/2012, 08:26
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

Si entiendo lo que quieres es motrar en Id.innerHTML el ID del comentario respectivo verdad???
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #11 (permalink)  
Antiguo 29/08/2012, 11:25
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: Pasar variable PHP a funcion js

Cita:
Iniciado por Dradi7 Ver Mensaje
Si entiendo lo que quieres es motrar en Id.innerHTML el ID del comentario respectivo verdad???
Exacto, del comentario en el que el usuario ha hecho clic.
  #12 (permalink)  
Antiguo 29/08/2012, 11:31
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

pero para eso no mejor usas javascript solamente haciendo esto del codigo que te pase claro

c.Id
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #13 (permalink)  
Antiguo 29/08/2012, 13:13
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: Pasar variable PHP a funcion js

Cita:
Iniciado por Dradi7 Ver Mensaje
pero para eso no mejor usas javascript solamente haciendo esto del codigo que te pase claro

c.Id
Ok pero a ver, necesito hacer luego una consulta a la base de datos tipo

mysql_query("SELECT * FROM tabla WHERE id= idrecibido ");

Me puedes explicar como hago eso usando lo que hemos usado antes? Solo me falta el final, gracias.
  #14 (permalink)  
Antiguo 29/08/2012, 13:15
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

pero si quieres consultar un PHP usando un evento javascript no vas a poder hasta que la pagina realize un request o en todo caso uses ajax
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #15 (permalink)  
Antiguo 29/08/2012, 13:53
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Ah de acuerdo, entonces me podrias dar una idea de como hacerlo? Muchas gracias
  #16 (permalink)  
Antiguo 29/08/2012, 13:54
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

pero existen multipes ejemplos en la web mira este

http://www.w3schools.com/ajax/tryit....=tryajax_first
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #17 (permalink)  
Antiguo 29/08/2012, 17:51
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 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!!
  #18 (permalink)  
Antiguo 29/08/2012, 18:11
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Pasar variable PHP a funcion js

Pero estas confundiendo las cosas tus funciones estan bien lo que esta mal es el momento que lo invocas no es necesario hacer submit para realizar un ajax segundo porque pones en action una funcion javascript eso esta totalmente mal mas bien en el momento que hagas click en una celda llamas a la funcion mostrarcontenido y enviar
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #19 (permalink)  
Antiguo 29/08/2012, 18:24
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: Pasar variable PHP a funcion js

Ok, ahora lo tengo así:
(He sacado el form porqué no le veo la utilidad)

Código PHP:


function mostrarcomentario(Id) {

 if ((document.getElementById("book").style.display) == 'block') {
  document.getElementById("book").style.display = 'none';
 }else{
  document.getElementById("book").style.display = 'block';
 }
        var idcomentario = $("idcomentario").val();
 
 $.ajax({
         url: 'mostrar.php',
         data:'idcomentario='+ idcomentario,
         type: 'post',   
error: function(obj, idcomentario, obj2){
            alert(idcomentario);
         },
         success: function(data){
            loadComent();
         }
      });
}




    <div id="wall">
            <?php
            $query 
mysql_query("SELECT * FROM comentarios WHERE idperfil= '".mysql_real_escape_string($idperfil)."' ORDER BY fecha DESC");
         
if(
$query == true){
            
?>
            <?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></div>
Me sigue saliendo el mismo error que antes : mostrar.php no recibe el POST
  #20 (permalink)  
Antiguo 01/09/2012, 17:52
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 3 meses
Puntos: 14
Respuesta: Pasar variable PHP a funcion js

Hola, creo que ya he esperado bastante, ¿alguien puede ayudarme por favor?
  #21 (permalink)  
Antiguo 28/01/2013, 07:12
 
Fecha de Ingreso: septiembre-2012
Mensajes: 73
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Pasar variable PHP a funcion js

Código Javascript:
Ver original
  1. var miVariable = "Hola Mundo";
  2. document.cookie ='variable='+miVariable+'; expires=Thu, 2 Aug 2021 20:47:11 UTC; path=/';

Código PHP:
Ver original
  1. <?php $miVariable = $_COOKIE["variable"];
  2. echo $miVariable;
  3. ?>

Etiquetas: funcion, js, php, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:56.