Votre code est divisé en deux parties distinctes, le côté serveur et du côté client.
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
Les deux côtés de communiquer via des requêtes et des réponses HTTP. PHP est exécuté sur le serveur et les sorties HTML et peut-être un code JavaScript qui est envoyé comme réponse pour le client, le code HTML est interprété et le JavaScript est exécuté. Une fois que PHP a fini de la transmission de la réponse, le script se termine et il ne se passera rien sur le serveur jusqu'à ce qu'une nouvelle requête HTTP.
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>
L'étape 1, PHP s'exécute tout le code entre <?php ?>
tags. Le résultat est le suivant:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
L' file_put_contents
d'appel n'a pas abouti à rien, c'est juste écrit "+ foo + " dans un fichier. L' <?php echo 42; ?>
appel a abouti à la sortie de "42", qui en est maintenant à l'endroit où le code utilisé pour être.
Il en résulte HTML/JavaScript code est envoyé au client, où il sera évalué. L' alert
appel, alors que l' foo
variable n'est pas utilisé n'importe où.
Tous les code PHP est exécuté sur le serveur avant que le client même le début de l'exécution du JavaScript. Il n'y a pas de code PHP à gauche dans la réponse que JavaScript peut interagir avec.
Pour appeler un code PHP, le client devra envoyer une nouvelle requête HTTP au serveur. Cela peut se produire en utilisant une des trois méthodes possibles:
- Un lien, ce qui provoque le chargement d'une nouvelle page.
- La soumission d'un formulaire qui envoie des données au serveur et charge une nouvelle page.
- Un AJAX demande, qui est un code Javascript technique pour en faire régulièrement une requête HTTP au serveur (comme le 1. et 2. volonté), mais sans quitter la page en cours.
Voici une question qui expose ces méthode plus en détail
Vous pouvez également utiliser du JavaScript pour que le navigateur ouvre une nouvelle page à l'aide d' window.location
ou soumettre un formulaire, l'émulation de possibilités 1. et 2.