Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2010, 17:18
My_lady
 
Fecha de Ingreso: marzo-2004
Mensajes: 35
Antigüedad: 20 años, 8 meses
Puntos: 0
Javascript/PHP: $row sólo devuelve primer registro

¡Buenas noches!

Antes de nada quería decir que tengo más bien pocos conocimientos tanto de Javascript como de PHP, y que todo lo que he leído en éste y en otros foros sobre la combinación de PHP y Javascript me ha confundido aún más, por lo que pido disculpas si este tema resulta estar ya muy trillado, pero es que no consigo hacer funcionar mi página web como desearía.

Dicha web se basa mayormente en una tabla. En ella, tengo una serie de vínculos que, al ser pulsados, lanzan un efecto Lightbox con el que pretendo cargar los resultados de una consulta a la base de datos en un recuadro blanco sobre un fondo semi-transparente. La idea es que cada vínculo cargue un registro, todos ellos diferentes, que he obtenido previamente en la consulta.

Para ello, he copiado de internet un método que, auqneu parece ser algo rústico, me parece muy asequible para mis conocimientos y he obtenido las siguientes líneas de código:

Código:
$html = $html. "<td><b><a href = javascript:void(0) onclick =document.getElementById('blanco').style.display='block';document.getElementById('degradado').style.display='block'>".$row["funcion"]."</a></b>
                <div id=blanco class="recuadro_blanco">".$row['comentario']."<p><a href = javascript:void(0) onclick =document.getElementById('blanco').style.display='none';document.getElementById('degradado').style.display='none'>Cerrar</a></div>
                <div id=degradado class="recuadro_degradado"></div>
                </td>";
Quepa decir que tanto el efecto como la consulta funcionan correctamente, de hecho, he probado a imprimir $row['comentario'] con echo y devuelve todos los registros deseados, por lo que creo que el problema está en la parte de Javascript porque, y he aquí el problema, siempre me carga el mismo registro en el recuadro. Es como si $row['comentario'] sólo devolviera el primer resultado, como si sólo fuera capaz de reconocer un registro, y no los demás.

Puesto que una vez hice un carrusel de fotografías con un método parecido, recuerdo que tuve que hacer un array con las fotos, por lo que se me había ocurrido que tal vez necesite hacer una lista con los resultados de $row['comentario'] pero ¿cómo entonces puedo automatizar qué registro tiene que colocarme cada vinculo en el recuadro? ¿Hay alguna forma de enmendar mi código para que funcione sin complicarlo en exceso?

También he leído que esta forma de crear el efecto Lightbox es muy chapucera y poco práctica, y puede dejar de funcionar si el navegador tiene desactivado JavaScript, por lo que agradecería cualquier recomendación sobre otras maneras de crear el efecto Lightbox más eficaces y que puedan combinarse con mi código PHP, además de funcionar en la mayoría de navegadores y circunstancias.

Muchas gracias.