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>";
?>
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