# [PHP] Ayuda para añadir javascript a una consulta db(SOLVED)

## ZaPa

Hola a todos, que tal?

Estoy haciendo unos pinillos en php, haciendo un script en php, el cual muestre todos los elementos de una tabla de la base de datos (hasta aqui correcto).

Pero lo que yo quiero hacer es lo siguiente....

Cuando muestre todos los datos de la tabla..poder añadirle enlaces javascript popup() por ejemplo..es decir,

imaginense que muestro todas las viviendas que tengo en una base de datos, pues me gustaria, que al mostrar el nombre de la vivienda, saliera en modo enlace y que al pincharle se abriera un popup en javascript.

Un amigo,una vez, hizó un script asi para una inmobiliara, y le estoy hechando un vistazo y al clickear el raton encima del nombre de la vivienda por ejemplo aparece esto:

edit.php?action=desc_edit&ref=319

Cada vivienda, tiene una referencia (segun el nº que ocupe en la tabla) y  con un javascript:launch(referenciadevivienda) abre todos los datos de dicha vivienda.

Con get, pasa la variable de ref al fichero php que hace la consulta y muestra todo el contenido en una ventana (popup)..pero mi duda es, como es que javascript sabe donde tiene que ir solamente con launch()?

¿Como podria hacer esto?

Espero respuestas.

Muchas gracias por su tiempo prestado.

Saludos.

----------

## lanshor

No sé si he entendido bien tu pregunta... pero de lo que he entendido, lo que podrías hacer sería una función en js que abriera un popup con la url pasada como parámetro: "function AbrirPopup(url)"

Y luego simplemente imprimir desde php los enlaces:

```

if($consulta) foreach($consulta as $indice => $linea)

{

   echo '<a href="javascript:AbrirPopup(muestrainfo.php?ref='.$linea["ref"].')">Vivienda '.$indice.'<br>\n';

}

```

----------

## edgar_uriel84

Bueno, como dice lanshor el php es independiente de las acciones js que quieras implementar, necesitas hacer una función que abra el popup que deseas, sin embargo no es recomendable que php escriba código html, recomiendo que escribas con php las variables propias de php (en este caso le llamas "ref").

----------

## Stolz

En mi opinión, los PopUps son algo anticuado desde los años 90, pero si tienes claro que los quieres usar, todo lo que necesitas saber de JS relacionado con ellos lo puedes encontrar aquí http://www.w3schools.com/HTMLDOM/met_win_open.asp , inlcuyendo un ejemplo de función como la que sugiere lanshor.

----------

## ZaPa

Hola a todos...

voy a ver si me aclaro..ahora en un rato posteo y os digo..

porcierto..lanshor..alicantino como yo  :Smile:  ... eres de alicante capital?

Otro asuntillo..

Edgar..porque dices que no es seguro escribir html desde php? Ahi algun problema en ello?

Un saludo.

Espero respuestas.

----------

## lanshor

Hombre paisano! Sí, soy de Alicante capital!  :Smile: 

En general queda más limpio y es un poco más rápido (en la ejecución) escribir en php sólo lo necesario, siguiendo el ejemplo:

```

if($consulta) foreach($consulta as $indice => $linea)

{

?>

    <a href="javascript:AbrirPopup(\"muestrainfo.php?ref=<?=$linea["ref"]?>\")">Vivienda <?=$indice?></a><br>

<¿

} 

```

Pero para una línea igual no te compensa... aparte de una mera cuestión de estilo y un nimio incremento en la velocidad, creo que no hay más razones para desaconsejar imprimir html desde php.

Estoy con stolz en que los popups están anticuados y son bastante antiestéticos (e incluso diría que incómodos). Podrías usar un div flotante cuyo contenido cargarías con ajax y mostarías cuando se pulsase en algún enlace. No te costaría mucho más trabajo y personalmente, creo que quedaría mucho mejor.

----------

## edgar_uriel84

 *ZaPa wrote:*   

> 
> 
> Edgar..porque dices que no es seguro escribir html desde php? Ahi algun problema en ello?
> 
> 

 

Una vez más lanshor te ha dado la respuesta antes que yo  :Razz: . Escribir HTML mediante PHP resulta en una página lenta. Yo supongo que puedes requerir consultas grandes, lo cual al final si influye en la velocidad de la página, con Firebug puedes hacer tu mismo la prueba, si imprimes muchas cosas con PHP acabaras con una página notablemente lenta, incluso varios segundos más lenta de lo normal!! (toma en cuenta que el contenido de una buena web debe mostrarse al segundo de abrir la página con una conexión de 512)

Si quieres un popup bonito, estético, hoy día los diseñadores usan "lightbox", yo he usado uno en varias de las webs que he hecho y va muy bien (eso si, no abuses o puede ser molesto): http://www.shadowbox-js.com/index.html

Igual si quieres una más ligera, puedes programartela basada en la que pongo arriba o desde cero.

----------

## ZaPa

Muchas gracias a todos.

----------

