Unos de los primeros errores que nos surge al trabajar con las tecnologías web es cómo pasar variable javascript a php, es decir, como pasar una variable desde el front-end (en el que trabaja el lenguaje JavaScript) al back-end (en el que trabaja el lenguaje PHP) y viceversa. Por suerte para nosotros este método es realmente sencillo y en esta entrada vamos a mostrarte algunos ejemplos de cómo hacerlo.

Encontrarás mucha información en la red intentando resolver esta pregunta y en muchos casos leerás que NO, pero la realidad es que sí que permite hacerlo, pero no de forma directa ya que el PHP se ejecuta antes que el JavaScript. Os mostramos algunos de los métodos más utilizados

JavaScript muestra variable de PHP

Este código mostrará mediante JavaScript una valiable enviada desde PHP.

// Código PHP -> Ejecutamos JS con nuestra variable
<?php $varPHP =54;
echo “varPHP =.$varPHP;
?>
 
// Código JavaScript -> Mostramos la variable enviada desde PHP
<script> var varJS = “se mostrará 54, enviado desde PHP”; </script>

Recordemos que PHP no es capaz de almacenar el valor de la variable, sino que se envía y es JavaScript el encargado de almacenar la variable y en este caso, mostrarla.

A través de un formulario web

En este caso guardaremos la variable en JavaScript a través de código PHP y la mostraremos a través de un form con una variable oculta que recibe la variable para, a continuación, ejecutar el form a través del JS para que se muestre por pantalla dicha variable haciendo una llamada PHP a sí mismo.

 
<?php
 
//Guardamos la variable en cliente
 
echo "<script language='javascript'>
	var numPHP=prompt('Introduce el numero',1);
     </script> ";
 
//La mostramos a través de un form con PHP y un campo oculto
 
echo "<form action=$_SERVER[PHP_SELF] method=post name=EnviarNum>
              <input type=hidden name=varPHP></form>";
 
echo "<script language='javascript'>
              document.EnviarNum.varPHP.value=numPHP;
              document.EnviarNum.submit();
</script>";
?>

A través de una variable de sesión

Por suerte para nosotros, tenemos otros métodos para pasar variable javascript a php. Contamos con variables de sesión gracias a los navegadores que pueden almacenar los datos que por si sólos no podemos almacenar gracias a PHP sin la ayuda de sistemas externos. La variable de sesión llamada SESSION se recupera a través de PHP gracias al método interno GET.

 
jQuery('#session_var').load('prueba.php?session_name=new_value');
 
//En el fichero prueba.php tendremos el siguiente código:
 
<?php
session_start();
 
if (isset($_GET['session_name'])) {$_SESSION['session_name'] = $_GET['session_name'];}
?>

Otros modos de pasar variables desde JavaScript a PHP y viceversa

Para poder pasar variable javascript a php, podemos usar también la caché de los navegadores para resolver el problema del guardado de variables en PHP. La solución sería similar a la mencionada en el uso de la variable de sesión, pero cambiando esta por la caché del navegador.

Esos datos que no es capaz de almacenar PHP son la causa de todas las dudas, por lo que podremos usar otros métodos para el almacenamiento de esos datos como por ejemplo en una base de datos en MySQL (la usada principalmente por PHP) o incluso a través de cookies, dando nombre a nuestra variable y pudiéndola recuperar después, algo que sería muy similar a la solución de la caché o la variable de sesión.

Dado que PHP se ejecuta antes que el código JavaScript que se encuentra en la parte cliente, tenemos soluciones a través de AJAX y la recarga de una parte de la página para hacer que el código JS se vuelva a ejecutar una vez se haya ejecutado el PHP.