Cómo pasar variables Javascript a PHP
Hace pocos días leía en un Blog sobre Diseño web una propuesta de debate sobre qué lenguaje de programación tiene más futuro, leer esto
En primer lugar una reflexión, y es que recordemos que Javascript se ejecuta del lado del cliente mientras que PHP lo hace del lado del servidor, por lo que realmente lo que estamos haciendo con la primera técnica que se presenta a continuación es imprimir en pantalla la variable en «formato texto».
En el segundo y tercer ejemplo veremos como guardar realmente los datos en la variable del lado del servidor, para ello existen varias formas de hacerlo, como por ejemplo a través de INPUT, AJAX, guardándolo en una base de datos MYSQL o en una variable de Sesión. De este modo conseguiremos pasar variables Javascript a PHP.
Copyright: 123RF
-
MÉTODO 1: paso de variable «en modo texto»
<script> var variableJS = “contenido de la variable javascript”; </script> <?php $PHPvariable = “<script> document.write(variableJS) </script>”; echo “PHPvariable = “.$PHPvariable; ?>
Este último código puede resultar «engañoso», ya que no es PHP quien imprime realmente el valor de la variable sino de nuevo javascript, aunque es cierto que en ocasiones muy concretas puede resultarnos de gran utilidad.
Por lo tanto PHP no almacena el valor, sino que es realmente Javascript quien lo interpreta en nuestro navegador web, ya que PHP se ejecutó en tiempo mucho antes en el lado del servidor web.La solución entonces pasa porque el evento javascript lance una petición web a PHP que provoque un click a una página PHP, y que acabe pasando los parámetros por POST o GET asignándolos así a las variables correspondientes.
-
MÉTODO 2: paso de variable JS a PHP a través de un form
El servidor web en los casos anteriores no puede almacenar la variable de ninguna de las maneras mientras el código es ejecutado en el lado del cliente, por lo tanto lo solucionamos de la siguiente manera:<?php echo "<script language='javascript'> var la_cantidad; la_cantidad=prompt('Introduce la cantidad',1); </script> "; //Ya tenemos capturada la variable con javascript echo "<form action=$_SERVER[PHP_SELF] method=post name=enviar> <input type=hidden name=var_php></form>"; echo "<script language='javascript'> document.enviar.var_php.value=la_cantidad; document.enviar.submit(); </script>"; ?>
Con estas líneas de código el archivo php se llama a sí mismo, pasando a través del formulario la variable javascript ‘la_cantidad’.
-
MÉTODO 3: paso de la variable JS a PHP a través de una variable de Sesión
jQuery('#div_session_write').load('session_write.php?session_name=new_value'); In session_write.php file: <? session_start(); if (isset($_GET['session_name'])) {$_SESSION['session_name'] = $_GET['session_name'];} ?>
Otro artículo interesante que os puede interesar es Cómo insertar html en php.
Si te gustó este artículo o te sirvió de ayuda por favor compártelo
Un saludo,
Óscar / DevService
Por Óscar Carrillo
Iñaki says:
Llevaba tiempo buscando como hacer el paso de variable de Javascript a PHP. Has resuelto mi duda al 100%, porque había visto un ejemplo del primer método…pero no entendía bien como asignarla y guardarla de verdad en PHP….ahora si! mil gracias
Daniel says:
Hola, este ejemplo tiene un problema y no se como arreglarlo
var variableJS = «aa»;
<?php
$PHPvariable = " document.write(variableJS) «;
echo «PHPvariable = «.$PHPvariable;
//esto lo agregue yo, debería ser igual aa pero es distinto
if($PHPvariable==»aa») echo » igual aa»; else echo » distinto aa»;
?>
juan says:
Suerte que lo conseguiste Iñaki.
Yo debo ser mas torpe y necesito más información, pues no consigo pasar ninguna variable desde JS a PHP con ninguno de los métodos 2 y 3 (que es lo que necesito)
Si se puede ampliar información sobre como hacerlo, GRACIAS.
SALUDOS.