Echanger des variables entre Javascript et PHP

Comment les variables de Javascript peuvent-elles être utilisées par les scripts PHP?
Et inversement, comment utiliser les valeurs de variables PHP en Javascript ?

Les valeurs de formulaire seront dans $_POST ou $_GET

Commençons par l'utilisation des éléments de formulaire en PHP. Le nom des éléments d'un formulaire sont également des variables de PHP dès lors que le script PHP est l'action du formulaire.

Exemple, ce formulaire complet:

<form  method="POST" name="myform" action="php-form-code.php">
    <input type="text" name="mytext" maxlength="80" size="30">
    <input type="submit" value="Submit" >
</form>

"mytext" est le nom donné à  l'objet de saisie de texte dans le formulaire ci-dessus.
Le script PHP retrouve le nom comme indice du tableau $_POST:

<?php
  $mytext = $_POST['mytext'];
  echo $mytext;
?>

En fait, quand un fichier est chargé par la propriété action du formulaire, tous les objets de ce formulaire sont donnés comme paramètres au fichier de script, avec le format :

?nom=valeur&nom=valeur ...

Ces paramètres font partie de l'URL avec une requête GET, ils sont invisible avec POST.

Et ces paramètres deviennent des variables et des valeurs dans un script PHP.
Dans ce cas-ci :

?mytext="le texte entré"

La valeur est le texte que vous avez tapé au clavier.

Le type hidden permet d'envoyer des données non fournies par l'utilisateur

Et si vous voulez envoyer au script sur le serveur quelques valeurs qui ne sont pas obtenues par le formulaire, comment faire?
Une solution simple est l'utilisation des éléments cachés, tel que celui-ci :

<input type="hidden" name="extra" value="Contenu de la variable supplémentaire" >

Ce type d'élément n'est pas affiché dans le formulaire, et n'a qu'une seule utilité, fournir une valeur qui sera ajouté aux autres valeurs fournies par la formulaire.

Si vous voulez changer dynamiquement la valeur par un script, vous pouvez assigner la valeur de la balise cachée, exemple :

document.myform.extra.value = "quelque valeur";

Les variables de PHP sont insérées dans une page HTML par echo

Cette page doit être parsée par l'interpréteur PHP, donc avoir l'extension PHP (a moins que le serveur ne soit configuré autrement).

Une fois que le code PHP est inclus, avec les instructions suivante:

<?php
  require("some-script.php";
?>

...n'importe quoi pourra être inséré dans la page avec la commande echo :

<?php
  echo "<p>Ce texte est affiché dans la page</p>";
?>

Ce texte est affiché dans la page

Vous pouvez assigner directement une valeur à  une propriété d'un objet de cette manière.

<script>
var x = "<?php echo $x; ?>";
</script>

C'est une erreur commune d'inclure le code PHP dans celui de Javascript en s'attendant à ce que le code PHP utilise les résultats de Javascript. En fait PHP est traité par le serveur avant que la page soit chargée et le code de Javascript est traité après que la page ait été chargée. Il n'y a aucun moyen au code PHP d'employer directement les résultats du code de Javascript, on doit employer Ajax à  la place.

Télécharger

© 2007-2012 Xul.fr