Migración de variables de JS a PHP

mrpeek Mensajes publicados 8 Estado Miembro -  
Reivax962 Mensajes publicados 3742 Estado Miembro -
Hola,

Estoy buscando recuperar variables de JS en mi código PHP. Aquí está mi código:

<script type="text/javascript">
function maPosition(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
}
if(navigator.geolocation) navigator.geolocation.getCurrentPosition(maPosition);
</script>

<?php
$latitude = "<script>document.write(lat);</script>";
echo $latitude;
?>

La parte PHP no imprime nada. Después de varias pruebas, me di cuenta de que con este procedimiento sí puedo obtener el valor de una variable JS si está declarada fuera de una función. Pero aquí, nada; no logro extraer los valores 'lat' y 'lon' para mostrarlos desde la parte PHP. ¿Alguien tendría una idea? Gracias de antemano por vuestra ayuda.

7 respuestas

mrpeek Mensajes publicados 8 Estado Miembro 2
 
Hola,

Gracias Jumulka por tu respuesta.
Sin embargo, si hago esto, sí logro llamar a la variable en mi código PHP:

<script type="text/javascript"> var a = 123; </script>


<?php $a = "<script>document.write(a);</script>" ; echo $a; ?>


Creo que mi consulta es más bien: ¿cómo recuperar mis variables fuera de una función JS?

Gracias
2
Reivax962 Mensajes publicados 3742 Estado Miembro 1 011
 
Bonjour,

Creo que hay algo que no has entendido bien en las interacciones entre PHP y JavaScript.
Hay que entender bien que PHP genera código fuente (JavaScript, HTML, CSS), en su totalidad, y luego envía toda la página al navegador del cliente, que, por su parte, interpreta ese código. No hay intercambios sincrónicos entre ambos.

Como máximo, se puede usar JavaScript para realizar peticiones al servidor PHP (lo que llamamos AJAX), pero es asíncrono (es incluso la primera A de AJAX): no puedes esperar que PHP recupere una variable por ese medio en el propio lugar del código que generó el JavaScript que calculó dicha variable. Estarás necesariamente en el ámbito de una nueva petición.

El código que presentas aquí no significa que PHP tenga conocimiento del valor de A. Solo tiene conocimiento de una cadena de texto que, del lado del cliente, permite mostrar A. Eso significa que no puedes usar tu código para hacer operaciones sobre el valor de A en PHP.
Para convencerte, con el código que escribiste, en tu navegador, haz “Ver código fuente”. No verás directamente el valor de A escrito por PHP; sólo verás tu código JavaScript que indica al navegador mostrar A. PHP nunca ha conocido el valor de A.

Recuerda bien que para PHP, JavaScript es solo un trozo de texto que envía al cliente y que este, a su vez, podrá interpretarlo.

Xavier
1