web-dev-qa-db-fra.com

Envoyer la variable JavaScript à PHP variable

Duplicate possible:
Comment passer des variables JavaScript à PHP?

J'ai d'abord pensé que je devais convertir JavaScript en PHP, mais j'ai découvert que je ne le pouvais pas à cause des exécutions côté serveur et client. Alors maintenant, je veux simplement envoyer UNE variable

<script type="text/javascript">
function scriptvariable()
{        
    var theContents = "the variable";
}
</script>

à une variable PHP

<?php
$phpvariable
?>

Cette fonction dans le JavaScript s’exécute lorsque je clique sur un bouton.

Maintenant, je n'ai aucune idée sur la façon d'attribuer cette variable phpvariable à celle en JavaScript afin qu'elle utilise phpvariable pour rechercher des éléments dans ma base de données. Je sais que je peux l'ajouter à mon URL ou à quelque chose et rafraîchir la page, mais j'aimerais le faire avec AJAX, car il se peut que je devrais utiliser cette méthode Ajax plus loin dans ma page Web.

Donc, y a-t-il un moyen facile de faire cela sans avoir à déposer des pages de code sur ma page pour faire une chose simple?

40
mrbunyrabit

Comme Jordan l'a déjà dit, vous devez publier la variable javascript sur votre serveur avant que celui-ci puisse gérer la valeur. Pour ce faire, vous pouvez programmer une fonction javascript qui envoie un formulaire - ou vous pouvez utiliser ajax/jquery. jQuery.post

Peut-être que l'approche la plus facile pour vous est quelque chose comme ça

function myJavascriptFunction() { 
  var javascriptVariable = "John";
  window.location.href = "myphpfile.php?name=" + javascriptVariable; 
}

Sur votre fichier myphpfile.php, vous pouvez utiliser $_GET['name'] après l'exécution de votre javascript.

Cordialement

46
Grrbrr404

PHP s'exécute sur le serveur et Javascript sur le client. Par conséquent, vous ne pouvez pas définir une variable PHP égale à une variable Javascript sans envoyer la valeur au serveur. Vous pouvez toutefois définir une Variable Javascript égale à a PHP variable:

<script type="text/javascript">
  var foo = '<?php echo $foo ?>';
</script>

Pour envoyer une valeur Javascript à PHP, vous devez utiliser AJAX. Avec jQuery, cela ressemblerait à ceci (exemple le plus élémentaire possible):

var variableToSend = 'foo';
$.post('file.php', {variable: variableToSend});

Sur votre serveur, vous devez recevoir la variable envoyée dans le message:

$variable = $_POST['variable'];
67
Jordan Brown

Cela dépend de la manière dont votre page se comporte. Si vous voulez que cela se produise de manière asynchrone, vous devez utiliser AJAX. Essayez "jQuery post ()" sur Google pour trouver des tuts.

Dans le cas contraire, si cela se produit lorsqu'un utilisateur envoie un formulaire, vous pouvez envoyer la variable dans un champ masqué ou ajouter ?variableName=someValue" jusqu'à la fin de l'URL que vous ouvrez. :

http://www.somesite.com/send.php?variableName=someValue

ou

http://www.somesite.com/send.php?variableName=someValue&anotherVariable=anotherValue

De cette façon, depuis PHP vous pouvez accéder à cette valeur en tant que:

$phpVariableName = $_POST["variableName"];

pour les formulaires utilisant la méthode POST ou:

$phpVariableName = $_GET["variableName"];

pour les formulaires utilisant la méthode GET ou la méthode append to url que j'ai mentionnée ci-dessus (chaîne de requête).

3
Ricardo Souza