Quiero pasar variables de JavaScript a PHP usando una entrada oculta en un formulario.
Pero no puedo obtener el valor de $_POST['hidden1']
into $salarieid
. ¿Hay algo mal?
Aquí está el código:
<script type="text/javascript">
// View what the user has chosen
function func_load3(name) {
var oForm = document.forms["myform"];
var oSelectBox = oForm.select3;
var iChoice = oSelectBox.selectedIndex;
//alert("You have chosen: " + oSelectBox.options[iChoice].text);
//document.write(oSelectBox.options[iChoice].text);
var sa = oSelectBox.options[iChoice].text;
document.getElementById("hidden1").value = sa;
}
</script>
<form name="myform" action="<?php echo $_SERVER['$PHP_SELF']; ?>" method="POST">
<input type="hidden" name="hidden1" id="hidden1" />
</form>
<?php
$salarieid = $_POST['hidden1'];
$query = "select * from salarie where salarieid = ".$salarieid;
echo $query;
$result = mysql_query($query);
?>
<table>
Code for displaying the query result.
</table>
php
javascript
variables
SOL Jiangong
fuente
fuente
Respuestas:
No puede pasar valores variables desde el código JavaScript de la página actual al código PHP de la página actual ... El código PHP se ejecuta en el lado del servidor, y no sabe nada sobre lo que está sucediendo en el lado del cliente.
Debe pasar variables al código PHP desde el formulario HTML utilizando otro mecanismo, como enviar el formulario utilizando los métodos GET o POST.
fuente
mysql_
funciones; no sería el objetivo responder esta pregunta con una reescritura completa.Solo guárdelo en una cookie:
Y luego léelo con PHP:
No es una solución bonita, pero funciona.
fuente
Hay varias formas de pasar variables de JavaScript a PHP (no la página actual, por supuesto).
Tú podrías:
Estoy seguro de que esto podría hacerse para parecer más elegante y recorrer todas las variables y demás, pero lo he mantenido básico para que sea más fácil de entender para los novatos.
fuente
Aquí está el ejemplo de trabajo: Obtenga el valor de la variable javascript en la misma página en php.
fuente
echo "<script>document.writeln(p1);</script>";
usa la variable javascriptp1
en javascript , no en php.document.writeln
es una función de JavaScript , que está ejecutando, en el navegador, mientras el navegador está construyendo la página HTML.PHP se ejecuta en el servidor antes de que la página se envíe al usuario, JavaScript se ejecuta en la computadora del usuario una vez que se recibe, por lo que el script PHP ya se ha ejecutado.
Si desea pasar un valor de JavaScript a un script PHP, tendría que hacer una solicitud XMLHttpRequest para enviar los datos nuevamente al servidor.
Aquí hay una pregunta anterior que puede seguir para obtener más información: Tutorial de Ajax
Ahora, si solo necesita pasar un valor de formulario al servidor, también puede hacer una publicación de formulario normal, que hace lo mismo, pero toda la página debe actualizarse.
Al hacer clic en enviar, se enviará la página e imprimirá los datos enviados.
fuente
Estaba tratando de resolver esto por mí mismo y luego me di cuenta de que el problema es que es una forma de ver la situación al revés. En lugar de tratar de pasar cosas de JavaScript a PHP, quizás sea mejor dar la vuelta, en la mayoría de los casos. El código PHP se ejecuta en el servidor y crea el código html (y posiblemente también el script java). Luego, el navegador carga la página y ejecuta el script html y java.
Parece que la forma más sensata de abordar situaciones como esta es usar PHP para crear el JavaScript y el html que desee y luego usar el JavaScript en la página para hacer lo que PHP no pueda hacer. Parece que esto le daría los beneficios de PHP y JavaScript de una manera bastante simple y directa.
Una cosa que he hecho que parece pasar cosas a PHP desde su página sobre la marcha es usar la etiqueta de imagen html para invocar el código PHP. Algo como esto:
El código PHP en pic.php en realidad crearía código html incluso antes de que se cargara su página web, pero ese código html se llama básicamente sobre la marcha. El código php aquí se puede usar para crear una imagen en su página, pero puede tener cualquier comando que desee además de eso. Tal vez cambie el contenido de algunos archivos en su servidor, etc. La ventaja de esto es que el código php se puede ejecutar desde html y supongo JavaScript, pero la desventaja es que el único resultado que puede poner en su página es un imagen. También tiene la opción de pasar variables al código php a través de parámetros en la url. Los contadores de páginas usarán esta técnica en muchos casos.
fuente
Podemos pasar fácilmente valores incluso en las mismas páginas / diferentes usando las cookies que se muestran en el código de la siguiente manera (en mi caso, lo estoy usando con la integración de Facebook) -
Y he accedido a él (en cualquier archivo) usando -
fuente
Así es como lo hice (necesitaba insertar una zona horaria local en PHP:
fuente
¿Se llama su función, que establece el valor oculto de la forma? No es en este ejemplo. No debería tener problemas para modificar un valor oculto antes de volver a publicar el formulario en el servidor.
fuente
Su código tiene algunas cosas mal.
Es posible establecer una variable de JavaScript en una variable oculta en un formulario, luego enviarla y volver a leer el valor en PHP. Aquí hay un ejemplo simple que muestra esto:
fuente
cuando su página cargue el código PHP por primera vez y configure el diseño completo de su página web. después del diseño de la página, configura la carga de JavaScript. ahora JavaScript interactúa directamente con DOM y puede manipular el diseño, pero PHP no puede necesitar actualizar la página. Solo hay una manera de actualizar su página y pasar los parámetros en la URL de la página para que pueda obtener los datos a través de PHP. Entonces usamos AJAX para interactuar Javascript con PHP sin recargar la página. AJAX también se puede usar como API. Una cosa más si ya ha declarado la variable en PHP. antes de cargar la página, puede usarla con su ejemplo de Javascript.
El código anterior es correcto y funcionará. pero el siguiente código está totalmente equivocado y nunca funcionará.
Pase el valor de JavaScript a PHP a través de AJAX
Es la forma más segura de hacerlo. porque el contenido HTML se puede editar a través de herramientas de desarrollador y el usuario puede manipular los datos. así que es mejor usar AJAX si quieres seguridad sobre esa variable. Si eres un novato en AJAX, aprende AJAX, es muy simple.
ejemplo simple de AJAX
de lo contrario, puede crear entradas HTML ocultas dentro de su formulario. me gusta
luego, a través de jQuery o javaScript, pase el valor al campo oculto. me gusta
Ahora, cuando envíe el formulario, puede obtener el valor en PHP.
fuente
Puede ser que pueda usar el método jquery serialize () para que todo esté a la vez.
// de esta manera también podrías obtener el valor oculto en el lado del servidor.
fuente
Obviamente, esta solución no se mencionó anteriormente. También puede usar cookies para pasar datos del navegador al servidor.
Simplemente configure una cookie con los datos que desea pasar a PHP usando javascript en el navegador.
Luego, simplemente lea esta cookie en el lado de PHP.
fuente
No podemos pasar valores variables de JavaScript al código PHP directamente ... El código PHP se ejecuta en el lado del servidor, y no sabe nada sobre lo que está sucediendo en el lado del cliente.
Por lo tanto, es mejor usar AJAX para analizar el valor de JavaScript en el código php.
O, alternativamente, podemos hacer esto con la ayuda de COOKIES en nuestro código.
Gracias y saludos.
fuente