Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Función Jquery en while php

Estas en el tema de Función Jquery en while php en el foro de Jquery en Foros del Web. Hola a todos...!!! Tengo una función "Jquery" con enlace "id" que al hacer "click" me muestra u oculta tanto el <div> como el enlace. Al ...
  #1 (permalink)  
Antiguo 27/07/2015, 14:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 1 mes
Puntos: 3
Función Jquery en while php

Hola a todos...!!!

Tengo una función "Jquery" con enlace "id" que al hacer "click" me muestra u oculta tanto el <div> como el enlace. Al utilizarlo dentro de un "while" php, solo funciona el primero y esto, me parece, es por que sólo reconoce un "id" como es lógico.

A pesar de haber leído, por mi inexperiencia en javascript, no se como hacer para que funcione en el while, supongo que será a través de una variable para el "id", pero no lo logro... por favor, alguien me puede ayudar?


Código PHP:
echo '<script type="text/javascript">
        $(document).ready(function() {
            $("#ver_user").on("click", function() {
                $("#ver_user2").fadeIn(function(){
                    $("#ver_user").hide("fast");
                });
            });
            $("#cerrar_user2").on("click", function() {
                $("#ver_user2").fadeOut(function(){
                    $("#ver_user").show("fast");
                });
            });
        });
</script>'
;

while( 
$row mysql_fetch_assoc($result_5)){
    echo 
"<td>";
            if (
$row['user'] > '0') {
            
$ver_user '<div><a  id="ver_user" href="#">'.$row['user'].'</a><div id="ver_user2" style="display:none;"><div id="cerrar_user2"></div>'.$row['usuario'].'</div></div>';
            }
            echo 
$ver_user;
    echo 
"</td>";

  #2 (permalink)  
Antiguo 28/07/2015, 15:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Función Jquery en while php

En lugar de un id que debe de ser único en todo el documento, usa una class que sí puede repetirse.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 29/07/2015, 04:26
Avatar de jpint  
Fecha de Ingreso: junio-2012
Ubicación: Ciudad Real - España
Mensajes: 97
Antigüedad: 12 años, 5 meses
Puntos: 12
Respuesta: Función Jquery en while php

Utiliza un contador para los id y añadele el evento onclick directamente al elemento, asi podrás pasarle el id por parametro:

Código PHP:
<?php

$cont 
0;
while( 
$row mysql_fetch_assoc($result_5)){ 
    echo 
"<td>"
            if (
$row['user'] > '0') { 
            
$ver_user '<div>
                    <a id="ver_user'
.$cont.'" onclick="verUser('.$cont.')">'.$row['user'].'</a>
                    <div id="ver_user2'
.$cont.'" style="display:none;">
                    <div id="cerrar_user2'
.$cont.'"  onclick="cerrarUser('.$cont.')"></div>'.$row['usuario'].'</div>
                </div>'

            } 
            echo 
$ver_user
    echo 
"</td>"
    
$cont++;
}  

?>

<script type="text/javascript">
function verUser(id){
    $("#ver_user2" + id).fadeIn(function(){ 
        $("#ver_user" + id).hide("fast"); 
    }); 

function cerrarUser(id){
    $("#ver_user2" + id).fadeOut(function(){ 
        $("#ver_user" + id).show("fast"); 
    }); 

</script>
  #4 (permalink)  
Antiguo 31/07/2015, 18:04
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 20 años, 1 mes
Puntos: 3
Respuesta: Función Jquery en while php

Disculpas por la tardanza en contestar...!!!

Me quedó perfecto, utilicé el ejemplo que me dió jpint y funciona tal cual quería.


Muchas gracias a los dos (jpint y Alexis88) por la ayuda y la orientación!!!

Saludos!

Etiquetas: php
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 12:21.