Foros del Web » Programando para Internet » PHP »

Compartir variables entre PHP y JavaScript

Estas en el tema de Compartir variables entre PHP y JavaScript en el foro de PHP en Foros del Web. Hola, tengo el siguiente código en la cabecera de una pàgina HTML: Código: <head> <?php include("myscript.php"); ?> <script language="javascript" src="otroscript.js"></script> </head> Ambos scripts funcionan correctamente ...
  #1 (permalink)  
Antiguo 20/04/2005, 06:19
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 13 años, 1 mes
Puntos: 1
Compartir variables entre PHP y JavaScript

Hola, tengo el siguiente código en la cabecera de una pàgina HTML:

Código:
<head>
  <?php include("myscript.php"); ?>
  <script language="javascript" src="otroscript.js"></script>
</head>
Ambos scripts funcionan correctamente por separado, es decir, el script en PHP realiza una consulta en una BD y obtiene en un array unas cantidades correctamente, mientras que el script en JavaScript realiza sus tareas tambien correctamente.

La idea es que el script en JavaScript haga sus cosas dependiendo de los valores obtenidos por el de PHP.

En mi ejemplo: si el script en PHP obtiene un array con los valores [5,2] entonces el de JavaScript debe hacer 5 bucles y dentro de cada uno de ellos otros 2.

La cuestión es: ¿se pueden compartir variables entre scripts de diferentes lenguajes? En caso afirmativo, ¿como?

Gracias.
  #2 (permalink)  
Antiguo 20/04/2005, 06:32
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Tema ya tratado... ¿buscaste?.

PHP solo puede mandar a imprimir esa función JavaScript que requieras... y si esta función va a depender de una variable PHP solo debes tener cuidado de imprimirla en el lugar correcto para que al final la estructura de tu JS sea la correcta. Ejemplo gráfico:
Código PHP:
<?php
$a
=5;
$b=2;
$c=$a+$b// cualquiera operaciones en PHP
echo "<script> for(i=0; i<$c; i++)"// el ciclo dependerá de una variable PHP
echo "alert(\"Hola mundo!!!\"); </script>";
// igual pudimos salir de PHP y simplemente imprimir las variables independientemente.
?>
Espero haber ayudado... la verdad si buscas encontrarás el tema más expandido. Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 20/04/2005, 07:35
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 13 años, 1 mes
Puntos: 1
Gracias, era la solución que me imaginaba... pero pregunté por si había otra alternativa.
  #4 (permalink)  
Antiguo 20/04/2005, 07:39
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
¿cómo qué otra alternativa tenias en mente???... Lo que pasa es que igual depende de loq ue quieras hacer...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 20/04/2005, 07:46
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 13 años, 1 mes
Puntos: 1
Pues la alternativa era esa... saber si se podia de alguna forma usar en JavaScript variables de PHP y viceversa...
  #6 (permalink)  
Antiguo 20/04/2005, 08:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
De PHP a javascript .. no es que "envies variables" sino que generas ese javascript dinámicamente con tus $variables PHP ..

Por ejemplo "pasar" una variable a javacript .. sería algo tipo:
Código PHP:
<?
$variable_php
="Esto es de pHP";
?>
<script languaje="javascript">
alert ('<? echo $variable_php ?>');
</script>
Fijate que es "PHP" el que genera ese javascript .. de hecho si vas a tu navegador ver->código fuente . .veras el valor representado de tu $variable_php .. que es lo que finalmente interpreta javascript como si "a mano" lo hubieras puesto en tu código javascript.

A la inversa (de Javacript a PHP) .. recuerda que PHP se ejecuta en el servidor .. así que todo "paso" de variables a tu script PHP (donde puede estar atendiendo una función o lo que sea ..) tendrás que generar un link que apunte a tu script.php donde por el URL le pases las variables que necesites.

Un ejemplo sería algo así (javascript no es mi fuerte .. no aseguro que funcione como se espera).

formulario.html
Código PHP:
<form name="formulario" action="" method="post">
<
input type="text" name="javascript">
<
a href="#" onClick="window.location='script.php?variable='+document.formulario.javascript.value">Pasar dato tomado por javacript</a>
</
form
y tu script.php
Código PHP:
<?
echo "Variable recibida: ".$_GET['variable'];
?>
Si te fijas ... se compone un URL con tus variables .. si son "Javascript" como es ese caso .. se "concatenan" como lo hace javacript (con su +) .. pero al final cara a PHP todo lo recibe por el método usado (GET).

Ahora, eso sería lo básico . hay técnicas com "Ajax" (Remote Scripting) .. donde con muchooo javascript/DOM etc .. puedes pasar valores via javascript desde el "cliente" al "servidor" sin una "recarga" de página aparente (o se recargan frames ocultos .. o se trabaja con otras técnicas). Si te interesa .. usa el buscador del foro .. por "Ajax" o "Remote scripting" ... veras cosas interesantes.

Un saludo,
  #7 (permalink)  
Antiguo 21/04/2005, 08:27
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 13 años, 1 mes
Puntos: 1
Ok, me ha funcionado con la primera propuesta: añadir a base de echos el código JavaScript.

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:17.