Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Mostrar div en un while, leer...

Estas en el tema de Mostrar div en un while, leer... en el foro de Frameworks JS en Foros del Web. Hola buenas, tengo una lista de marcas que extraigo de una base de datos, al lado de cada una aparecen dos botones, ELIMINAR y SUBIR ...
  #1 (permalink)  
Antiguo 28/02/2011, 10:57
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Mostrar div en un while, leer...

Hola buenas, tengo una lista de marcas que extraigo de una base de datos, al lado de cada una aparecen dos botones, ELIMINAR y SUBIR FOTO. Bien, quiero que cuando le de al botón subir foto aparezca debajo de la marca del botón que presione (lo explico lioso creo, pero es facil pienso...) un div con un contenido(lógico xd)
Código:
$(document).ready(function(){
	$("#elemento").hide();
   $("#subimg").click(function(event){
    event.preventDefault();
    $("#elemento").show(3000);
   });
});
Código PHP:
        $sql2 "SELECT * FROM marcas_telefonos ORDER BY marca ASC";
        
$result2=MySQL_query($sql2,$db);
        while(
$myrow2=MySQL_fetch_array($result2))
        {
            
$id $myrow2["0"];
            
$marca $myrow2["1"];
            echo 
"&raquo; $marca  &bull; <a onClick=\"return window.confirm('Va a eliminar la siguiente marca: $marca \\n &iquest;esta conforme?')\" href=\"?idmarca=$id&amp;accion=eliminarmarca\" title=\"Eliminar\">ELIMINAR</a> &bull; <a href=\"?administrar=telefonos&amp;telefonos=marcas\" id=\"subimg\" title=\"subir\">SUBIR IMAGEN</a><br>";
            echo 
"<div id=\"elemento\">AQUI EL FORM PARA SUBIR IMAGEN</div>";
        } 
El problema esta en que, solo se oculta en la primera marca, debajo de las demas marcas sigue apareciendo el div "elemento" quiero que se me oculten todos y cuando le de aparezca el que convenga :s si me podeis ayudar lo agradezco. Un saludo
  #2 (permalink)  
Antiguo 28/02/2011, 13:43
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Mostrar div en un while, leer...

El atributo id "identifica" a un tag html o elemento html, al decir identifica se entiende que deberá ser unico, no pueden haber 2 o más elementos html con el mismo id.
La función js apunta al elemento cuyo ID es "elemento". El bucle genera varios elementos con el mismo id.
Quizas jquery solo accede al primero y su trabajo terminó ya que solo espera que exista uno solo.

En vez de id usa class para que jquery seleccione a un conjunto de elementos con una misma class.
__________________
I am Doyle please insert code.
  #3 (permalink)  
Antiguo 28/02/2011, 14:11
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Mostrar div en un while, leer...

Cita:
Iniciado por doylelives Ver Mensaje
El atributo id "identifica" a un tag html o elemento html, al decir identifica se entiende que deberá ser unico, no pueden haber 2 o más elementos html con el mismo id.
La función js apunta al elemento cuyo ID es "elemento". El bucle genera varios elementos con el mismo id.
Quizas jquery solo accede al primero y su trabajo terminó ya que solo espera que exista uno solo.

En vez de id usa class para que jquery seleccione a un conjunto de elementos con una misma class.
Pero seguramente si lo hago así simplemente se me veran todos los FORMULARIOS de todas las marcas no?

EDIT: Comprobado se ven todos de golpe quiero que se vea solo el que corresponde al botón, como asignarlo? :S
EDIT2: Y Solo funciona si le doy al primer botón...

Última edición por codek_orz; 28/02/2011 a las 14:36
  #4 (permalink)  
Antiguo 01/03/2011, 05:19
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Mostrar div en un while, leer...

nadie sabe como ayudarme con esto??:(
  #5 (permalink)  
Antiguo 01/03/2011, 07:34
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Mostrar div en un while, leer...

El siguiente enlace explica como lograr algo similar.
http://andylangton.co.uk/articles/ja...iple-elements/
En dicho ejemplo, esta linea
$('a.toggleLink').click(function() {
....
}
Indica que los enlaces clickeados con class igual a toggleLink, ejecutaran la función asociada. Dentro de ésta el selector $(this) hace referencia al enlace que se clickeo unicamente. entonces puedes hacer uso de las funciones de jquery.
.parent() accede al tag padre del elemento actual.
.next() accede al tag siguiente del elemento actual(tag hermano), si existe tal.
.prev() accede al tag anterior del elemento actual(tag hermano), si existe tal.

Supondo que $(this).next() accederá al div donde está declarado tu form.
No pierdes nada con intentar
__________________
I am Doyle please insert code.
  #6 (permalink)  
Antiguo 02/03/2011, 06:40
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Mostrar div en un while, leer...

Nada, no se si lo hice mal, cambie mi código cambie el id que representaba al link por una class, y añadi a mi function de jquery $(this).next() quedando de la siguiente forma
Código:
<script language="javascript" type="text/javascript">
$(document).ready(function(){
	$(".elemento").hide();
   $("a.subimg").click(function(event){
    event.preventDefault();
    $(".elemento").show(1000);
	$(this).next();
   });
});
</script>
Pero sigue sucediendome lo mismo, al darle al boton para que me muestre el formulario me lo sigue mostrando debajo de todas las marcas no de la única a la que presione el botón. No se si me explico... gracias
  #7 (permalink)  
Antiguo 03/03/2011, 11:15
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Mostrar div en un while, leer...

porfavor necesito una ayudaa :P e buscao por ahí y no encuentro nada que pueda solucionarmelo, no se... :S
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 15:22.