Enviar variable JavaScript a variable PHP [duplicado]
Primero pensé que tenía que convertir JavaScript a PHP, pero luego descubrí que no puedo debido a las ejecuciones del lado del servidor y del cliente. Entonces ahora simplemente quiero enviar UNA variable
<script type="text/javascript">
function scriptvariable()
{
var theContents = "the variable";
}
</script>
a una variable PHP
<?php
$phpvariable
?>
Esa función en JavaScript se ejecuta cuando digamos que hago clic en un botón.
Ahora no tengo idea de cómo asignar esa variable php a la de JavaScript para usar la variable php para buscar cosas en mi base de datos. Sé que puedo agregarlo a mi URL o algo así y actualizar la página, pero me gustaría hacerlo con AJAX ya que podría tener que usar este método Ajax más adelante en mi página web.
Entonces, ¿existe una manera fácil de hacer esto sin tener que volcar páginas de código en mi página para hacer una cosa simple?
PHP se ejecuta en el servidor y Javascript se ejecuta en el cliente, por lo que no puede configurar una variable PHP para que sea igual a una variable Javascript sin enviar el valor al servidor. Sin embargo, puedes configurar una variable de Javascript para que sea igual a una variable de PHP:
<script type="text/javascript">
var foo = '<?php echo $foo ?>';
</script>
Para enviar un valor de Javascript a PHP, necesitaría usar AJAX. Con jQuery, se vería así (el ejemplo más básico posible):
var variableToSend = 'foo';
$.post('file.php', {variable: variableToSend});
En su servidor, necesitará recibir la variable enviada en la publicación:
$variable = $_POST['variable'];
Como ya dijo Jordan, debe devolver la variable javascript a su servidor antes de que el servidor pueda manejar el valor. Para hacer esto, puede programar una función de JavaScript que envíe un formulario, o puede usar ajax/jquery. jQuery.post
Quizás el enfoque más sencillo para usted sea algo como esto
function myJavascriptFunction() {
var javascriptVariable = "John";
window.location.href = "myphpfile.php?name=" + javascriptVariable;
}
En su myphpfile.php puede usarlo $_GET['name']
después de ejecutar su javascript.
Depende de cómo se comporta tu página. Si desea que esto suceda de forma asincrónica, debe usar AJAX. Pruebe "jQuery post()" en Google para encontrar algunos tutoriales.
En otro caso, si esto sucede cuando un usuario envía un formulario, puede enviar la variable en un campo oculto o agregarla ?variableName=someValue"
al final de la URL que está abriendo. :
http://www.somesite.com/send.php?variableName=someValue
o
http://www.somesite.com/send.php?variableName=someValue&anotherVariable=anotherValue
De esta forma, desde PHP puedes acceder a este valor como:
$phpVariableName = $_POST["variableName"];
para formularios que utilizan el método POST o:
$phpVariableName = $_GET["variableName"];
para formularios que usan el método GET o el método de agregar a la URL que mencioné anteriormente (cadena de consulta).