Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2012, 06:29
noruas
 
Fecha de Ingreso: junio-2012
Mensajes: 80
Antigüedad: 11 años, 11 meses
Puntos: 11
Pregunta Caja desplegable con contenido dinámico

Hola.

Tengo un sencillo documento php que muestra una lista de clientes extraidas de una tabla sql y un script en Jscript que he agarrado de un post de este mismo foro que lo que hace es que: al hacer click en un boton despliegue o esconda una caja que tiene debajo.

El problema es que el contenido es dinamico, y genera muchas cajitas, una por cada cliente por lo que el script no es capaz de saber que caja ha de desplegar ya que todas tienen el mismo ID...

A ver si alguien puede hecharme un cable y decirme como generar un id independiente a cada caja y que el boton correspondiente se refiera a ese id generado.

El documento que tengo es el siguiente:

Código:
<html>
 <head>
  <script>
    function capa()
    {
      var estilo = document.getElementById("capa").className;
      if (estilo == "hidden")
      {
        document.getElementById("capa").className = "show";
      }
      else
      {
        document.getElementById("capa").className = "hidden";
      }
    }
  </script>
  <style type="text/css">
   .hidden {height:0px; width:300px; display:none;}
   .show {height:auto; display:inherit; width:300px;}
  </style>
 </head>
 <body>
 <?php
   include("conex.phtml");
   $link=Conectarse();
   $result=mysql_query("SELECT * FROM clientes",$link);
 ?>
 <?php      
		while($row = mysql_fetch_array($result)) {
			echo '
			   // Boton para desplegar
			   <input type="button" name="boton" id="boton" value="Desplegar" onClick="capa()" />
			   
			   // Capa que se despliega
			   <div id="capa" class="hidden">
			   
				 <ul>
					<li><span>Cliente: </span>'.$row["apellidos"].', '.$row["nombre"].'</li>
					<li><span>NIF: </span>'.$row["dni"].'</li>
					<li><span>Dirección: </span>'.$row["direccion"].'</li>
				 </ul>
				 
			   </div>
			     ';
	}
   mysql_free_result($result);
   mysql_close($link);
 ?>
 </body>
</html>
Saludos.