Como generar JavaScript desde PHP

En ocasiones, cuando se hace un desarrollo web puede ser necesario utilizar tanto PHP como JavaScript. Pero en algunos casos el problema no reside en utilizar ambos lenguajes, si no en comunicarlos entre sí, y poder enviar datos desde PHP a JavaScript. ¿Y por qué existe ese problema? Porque PHP se ejecuta en el servidor, y JavaScript se ejecuta en la máquina cliente. Por tanto, para poder comunicar PHP con JavaScript no será necesario más que el poder generar el código correspondiente desde PHP para que lo pueda interpretar JavaScript. El problema a la inversa (de JavaScript a PHP) se resuelve generando desde JavaScript el POST que luego se encargaría de recoger la página PHP correspondiente.

Presentado el problema, creo que la mejor forma de explicarlo es, como en la mayor parte de las veces, mediante un ejemplo sencillo. Se trata de generar un array desde PHP y mostrar como ser vería al ser cargada la página, para ser interpretado con JavaScript.

Bien, pues generamos desde PHP un array llamado productos_array que contiene por cada entrada un array llamado producto_contador y que se obtiene de una base de datos.

 
<?php
$prod_javascript = '';
$pos = 0;
 
while ($prod = fetch_object($query_selecciona_productos)) {
 
  // Compongo las variables javascript con los datos de cada producto para poder acceder posteriormente.
  $prod_javascript = $prod_javascript . 'var producto_'.$pos.' = new Array(3); producto_'.$pos.'[0] = "'.$prod->codigo.'"; producto_'.$pos.'[1] = "'.$prod->descripcion.'"; producto_'.$pos.'[2] = "'.$prod->precio.'";';
 
  $pos = $pos +1;
}
echo $prod_javascript;
echo "n";
?>

De esta forma habremos generado un un código JavaScript desde PHP, similar al siguiente:

 
var producto_1 = new Array(3); producto_1[0] = "1000"; producto_1[1] = "lo que el viento se llevo"; producto_1[2] = "50";
var producto_2 = new Array(3); producto_2[0] = "1786"; producto_2[1] = "paquete 1000 folios"; producto_2[2] = "12";
var producto_3 = new Array(3); producto_3[0] = "9856"; producto_3[1] = "Boligrafo bic"; producto_3[2] = "4";
 
var productos_array = new Array();
productos_array[0] = producto_1;
productos_array[1] = producto_2;
productos_array[2] = producto_3;

Bien pues como hemos visto, el mayor problema de generar JavaScript a partir de PHP consiste en tener cuidado con las ” y con las ‘ para ver qué estamos concatenando todo bien, y obtener el resultado esperado. Así pues os recomiendo prestar atención a ello, y el esto salen como churros, como decía un antiguo profesor mío… :)

Artículos relacionados:

Tags: , , , , ,

Viernes, abril 24th, 2009 HTML CSS JavaScript y PHP

2 comentarios en Como generar JavaScript desde PHP

  1. Me cachis! podía haber llegado a esta web! hacía tiempo que andaba buscando algo así, comunicar php y javascript.

    Tenía el problema de que no se actualizaba el listado por que lo hacía desde php, y la llamada ya se había realizado.

    Vamos lo solucioné con un script en javascript que llamara denuevo a un php que lo generaba denuevo.

    Un saludo

  2. Carlos Dk escribió el 16 febrero, 2010
  3. Muy bueno el tuto, pero faltan unos apuntes mas:
    el script php, esta correcto, y se puede llamar desde un tag script dentro del html, pero la idea es que el script no se llame:

    si no

    la idea es enmascara la extension php y que sea tratada como si fuera js.

    Claro, que diran que al ser js no sera ejecutada en el servidor. Pues precisamente eso es lo que deseo hacer y si mal no estoy la solucion es usar el fichero .htaccess y cambiar el mime de los ficheros js. La idea es que el servidor ejecute los js como si fuesen php y que devuelva el resultado. en nuestro caso (el mio) un iframe con un banner adentro.

  4. sysmaya escribió el 14 marzo, 2010

Deja un comentario


Buscador

 

Mi foto aleatoria

dsc_0563.jpg
 
 

Comentarios recientes

Natty: Actualmente Facebook ya permite navegar en https. ...
Maria del mar: Estoy totalmente de acuerdo vergonzoso! Me ha pasa...
F. Javier: Bueno , pensaba que solo yo tenia problemas con "E...
jose vazquez: Gracias por la ayuda Jhonatan, resolví mi problem...
Marisa: COMO MAREAR LA PERDIZ: LLamo al 900847384 de Aten...
carloscarlosnasarre: hola a mi tambien me atendio un personaje de endes...
Victor David: El video esta muy gracioso lo vi 3 veses y realme...
Enrique: tu link Descargar generador de sitemap para Google...
daniellillo: esta mui vien...
kalia: Me gusta la información útil que usted proporcio...
Matt Stoner: Tons of great info....thanks. I'm going to share ...
Josey: El caso de Facebook es más justificable… Ut...
alicia: hola amigo me podria dar los precios como cuantos ...
Ignacio: Por fin encuentro alguien que oriente el cómo den...
Jonathan Echeverria: Hola, ¿El problema es que no puedes mostrar la...
RASEC28: Hola Jonathan gracias por contestar no he logrado...
Jonathan Echeverria: Hola, por supuesto que es posible,ya que la MV la ...
RASEC28: HOLA A TODOS, SOY NUEVO EN ESTO DE LAS VM NECESITO...
soraya: a mi me han atendido tres operadores diferentes,ca...
Roinel Cequea: Buenas noches amigo, mi blog presenta ese problema...
totci: Gracias por tomarse el tiempo para discutir esto ,...
Diego Estrada Moreno: Desafortunadamente todo lo que se comenta en esta ...
Juan: A ti, al menos, te han cogido el teléfono. A mí...
mario fernandez: quisiera compartirla, con mis amigos , como hago...
mario fernandez: muy bueno, me agradaria mas como este, son hermoso...
mario fernandez: muy bueno...
LUIS: NO HE VISTO UN SERVICION DE ATENCION TAN MALO COMO...
Carlos A. Lizcano D.: Excelente aporte Jonathan! gracias a tu publicaciÃ...
Cristina: Mientras espero que ENDESA me conteste, he encontr...
Pedro Rueda Villegas: Gracias por compartir es de mucha ayuda, y nos qui...