with variable valor recibir pasar from data php javascript variables

variable - send data from js to php



Acceda a una variable de JavaScript desde PHP (7)

Necesito acceder a una variable de JavaScript con PHP . Aquí hay una versión simplificada del código que estoy intentando actualmente, que no funciona:

<script type="text/javascript" charset="utf-8"> var test = "tester"; </script> <?php echo $_GET[''test'']; ?>

Soy completamente nuevo en JavaScript y PHP, así que realmente agradecería cualquier consejo.

ACTUALIZACIÓN : OK, creo que simplifiqué demasiado. Lo que intento hacer es crear un formulario que actualice el estado de Twitter cuando se envíe. Tengo el formulario funcionando bien, pero también quiero agregar datos de geolocalización. Dado que estoy usando Javascript (específicamente, la API de geolocalización de Google) para obtener la ubicación, ¿cómo puedo acceder a esa información con PHP cuando envío el formulario?


Bueno, el problema con el GET es que el usuario puede cambiar el valor por sí mismo si tiene algunos conocimientos. Escribí esto para que PHP pueda recuperar la zona horaria de Javascript:

// - index.php

<?php if (!isset($_COOKIE[''timezone''])) { ?> <html> <script language="javascript"> var d = new Date(); var timezoneOffset = d.getTimezoneOffset() / 60; // the cookie expired in 3 hours d.setTime(d.getTime()+(3*60*60*1000)); var expires = "; expires="+d.toGMTString(); document.cookie = "timezone=" + timezoneOffset + expires + "; path=/"; document.location.href="index.php" </script> </html> <?php } else { ?> <html> <head> <body> <?php if(isset($_COOKIE[''timezone''])){ dump_var($_COOKIE[''timezone'']); } } ?>


Como JavaScript es un lenguaje del lado del cliente y PHP es un lenguaje del lado del servidor, usted necesitaría insertar físicamente la variable en el script PHP, ya sea incluyendo la variable en la carga de la página del script PHP (script.php? Var = test ), que realmente no tiene nada que ver con JavaScript, o pasando la variable al PHP a través de una llamada AJAX / AHAH cada vez que se cambia la variable.

Si quisiera ir por la segunda ruta, estaría mirando XMLHttpRequest, o mi preferencia, jQuerys Ajax llama: http://docs.jquery.com/Ajax


JS está basado en navegador, PHP está basado en servidor. Debe generar alguna solicitud / señal basada en el navegador para obtener los datos del JS en el PHP. Echa un vistazo a Ajax .


La respuesta corta es que no puedes .

No conozco ninguna sintaxis de PHP, pero lo que puedo decir es que PHP se ejecuta en el servidor y JavaScript se ejecuta en el cliente (en el navegador).

Está haciendo $ _GET, que se usa para recuperar valores de formulario :

La función $ _GET incorporada se utiliza para recopilar valores en un formulario con method = "get".

En otras palabras, si en tu página tienes:

<form method="get" action="blah.php"> <input name="test"></input> </form>

Su llamada $ _GET recuperaría el valor en ese campo de entrada.

Entonces, ¿cómo recuperar un valor de JavaScript?

Bueno, podrías pegar el valor javascript en un campo de formulario oculto ...

<script type="text/javascript" charset="utf-8"> var test = "tester"; // find the ''test'' input element and set its value to the above variable document.getElementByID("test").value = test; </script> ... elsewhere on your page ... <form method="get" action="blah.php"> <input id="test" name="test" visibility="hidden"></input> <input type="submit" value="Click me!"></input> </form>

Luego, cuando el usuario haga clic en el botón Enviar, él / ella emitirá una solicitud de "OBTENCIÓN" a blah.php, enviando el valor en "prueba".


Si muestra datos al usuario, haga una redirección:

<script language="JavaScript"> var tester = "foobar"; document.location="http://www.host.org/myphp.php?test=" + tester; </script>

o un iframe:

<script language="JavaScript"> var tester = "foobar"; document.write("<iframe src=/"http://www.host.org/myphp.php?test=" + tester + "/"></iframe>"); </script>

Si no necesita el resultado del usuario, cree un iframe con width = 0 y height = 0.


_GET accede a las variables de cadena de consulta, la prueba no es una variable querystring (PHP no procesa el JS de ninguna manera). Debes replantearte. Podrías hacer una prueba de $ php variable, y hacer algo como:

<?php $test = "tester"; ?> <script type="text/javascript" charset="utf-8"> var test = "<?php echo $test?>"; </script> <?php echo $test; ?>

Por supuesto, no sé por qué quieres esto, así que no estoy seguro de la mejor solución.

EDITAR: Como otros han notado, si la variable de JavaScript realmente se genera en el cliente, necesitará AJAX o un formulario para enviarlo al servidor.


intente agregar esto a su función js:

var outputvar = document.getElementById("your_div_id_inside_html_form"); outputvar.innerHTML=''<input id=id_to_send_to_php value=''+your_js_var+''>'';

Más tarde en html:

<div id="id_you_choosed_for_outputvar"></div>

este div contendrá js var para pasar a través de un formulario a otra función js oa php, ¡recuerda colocarlo dentro de tu formulario html !. Esta solución está funcionando bien para mí.

En su caso de geolocalización específico puede intentar agregar lo siguiente para funcionar showPosition (posición):

var outputlon = document.getElementById("lon1"); outputlon.innerHTML = ''<input id=lon value=''+lon+''>''; var outputlat = document.getElementById("lat1"); outputlat.innerHTML = ''<input id=lat value=''+lat+''>'';

más tarde agregue estos div a su formulario html:

<div id=lat1></div> <div id=lon1></div>

En estos div obtendrás latitud y longitud como valores de entrada para tu formulario php, mejor deberías ocultarlos usando css (mostrar solo el marcador en un mapa si se usa) para evitar que los usuarios los cambien antes de enviarlos, y establecer su base de datos para aceptar valores flotantes con una longitud de 10,7.

Espero que esto ayude