Entrar Regístrate
 
Javascript y php
#1 ·

¡Buenas noches!

Mi página web se basa mayormente en una tabla. En ella, tengo una serie de vínculos que, al ser pulsados, lanzan una Lightbox donde pretendo cargar los resultados de una consulta a la base de datos. Puesto que quiero mantener el código lo más sencillo posible para mí, que no tengo mucha experiencia en programación web, para hacerlo opté por un método algo rústico que combina css y javascript, y obtuve la siguiente línea 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>";

El caso es que, si bien la parte estética funciona perfectamente, siempre me carga el mismo registro en la Lightbox. Es como si $row['comentario'] sólo devolviera el primer resultado, pero 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. Es como si sólo fuera capaz de reconocer un registro, y no los demás. ¿Hay alguna forma de solucionarlo? Había pensado que tal vez lo que necesita es una lista con los resultados de $row['comentario'] para poder funcionar, pero entonces no se me ocurre cómo hacer que sepa qué registro de los que le pasa $row['comentario'] tiene que mostrar para cada vínculo. ¿Alguien tiene alguna sugerencia? Si no, seguro qeu hay métodos más apropiados para lanzar una Lightbox y que no provoquen este problema ¿Alguna recomendación?

Muchas gracias.


Reina_Maab
Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 12
Desde: 20/May/2008
·
#2 ·

He seguido dándole vueltas al asunto y probado a crear una función que hiciera lo mismo y cargara los resultados deseados, lejos de la parte de JavaScript:

Código nuevo:
$html = $html. "<td><b><a href = javascript:void(0) onclick =document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'>".$row["funcion"]."</a></b><div id=light class="white_content">";
        $html = $html. devolver("select comentario from funcion where funcion.cod_prin =".$row["cod_prin"]);
        $html = $html. "<p><a href = javascript:void(0) onclick =document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'>Cerrar</a></div>
                <div id=fade class="black_overlay"></div>
                </td>";
Código de la función:
function devolver($consulta) {
    $sentencia = consultar($consulta);
    while($row = mysql_fetch_array($sentencia)){
    $html = $html.$row["comentario"];}
    return $html;
}

Pero me sigue pasando exactamente lo mismo. He probado a hacer echo tanto de la consulta como de $row a todas las alturas de la función posibles y devuelve los resultados correctos; sólo $html.$row["comentario"] se gripa en el primer resultado. También he probado la función "devolver" sola y me devuelve correctamente todos los registros. ¿Por qué no cuando se la llama para cargar los resultados en la Lightbox? ¿Es que no puede haber elementos distintos con la misma id? ¿Es que la cuenta se reinicia cada vez?

Verdaderamente no entiendo qué pasa. ¿Alguien podría orientarme? Gracias.


Reina_Maab
Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 12
Desde: 20/May/2008
·
#3 ·

Hala, ya no hace falta que respondáis. Al final era lo de las id.

Código:
$html = $html. "<td><b><a href = javascript:void(0)
onclick
=document.getElementById('".$row["cod_prin"]."').style.display='block';document.getElementById('fade').style.display='block'>".$row["funcion"]."</a></b><div
id=".$row["cod_prin"]." class="white_content">";
$html = $html. devolver("select comentario from funcion where funcion.cod_prin =".$row["cod_prin"]);
$html
= $html. "<p><a href = javascript:void(0) onclick
=document.getElementById('".$row["cod_prin"]."').style.display='none';document.getElementById('fade').style.display='none'>Cerrar</a></div>
<div id=fade class="black_overlay"></div>
</td>";

Reina_Maab
Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 12
Desde: 20/May/2008
·
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Foro de soporte · Ayuda para webmasters · Java y Javascript
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  
TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 17:43 UTC+02:00 DST
Temas similares
No se han encontrado temas similares