Votre code est divisé en deux parties entièrement distinctes, le côté serveur et le côté client .
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
Les deux parties communiquent via des requêtes et des réponses HTTP. PHP est exécuté sur le serveur et génère du code HTML et peut-être du code JavaScript qui est envoyé en réponse au client où le code HTML est interprété et le code JavaScript est exécuté. Une fois que PHP a terminé la sortie de la réponse, le script se termine et rien ne se passera sur le serveur jusqu'à ce qu'une nouvelle requête HTTP arrive.
L'exemple de code s'exécute comme ceci:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
Étape 1, PHP exécute tout le code entre les <?php ?>
balises. Le résultat est le suivant:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
L' file_put_contents
appel n'a abouti à rien, il a juste écrit "+ foo +" dans un fichier. L' <?php echo 42; ?>
appel a abouti à la sortie "42", qui est maintenant à l'endroit où se trouvait ce code.
Ce code HTML / JavaScript résultant est maintenant envoyé au client, où il est évalué. L' alert
appel fonctionne, tandis que la foo
variable n'est utilisée nulle part.
Tout le code PHP est exécuté sur le serveur avant même que le client ne commence à exécuter le code JavaScript. Il n'y a plus de code PHP dans la réponse avec lequel JavaScript pourrait interagir.
Pour appeler du code PHP, le client devra envoyer une nouvelle requête HTTP au serveur. Cela peut se produire en utilisant l'une des trois méthodes possibles:
- Un lien, qui amène le navigateur à charger une nouvelle page.
- Une soumission de formulaire, qui soumet des données au serveur et charge une nouvelle page.
- Une requête AJAX , qui est une technique Javascript pour faire une requête HTTP régulière au serveur (comme 1. et 2. le fera), mais sans quitter la page courante.
Voici une question décrivant ces méthodes plus en détail
Vous pouvez également utiliser JavaScript pour que le navigateur ouvre une nouvelle page en utilisant window.location
ou soumettre un formulaire, en émulant les possibilités 1. et 2.
window.open
ou charger une page à l'aide d'un iframe.