par
Cyrano » 07 avr. 2006, 13:59
Le PHP n'est pas un langage évènementiel et s'exécute coté serveur.
Comprends le principe global suivant : si tu as une page qui contient du HTML, du JavaScript, du PHP et du style CSS par exemple, lorsque tu vas appeler cette page dans ton navigateur, la requête est reçue par le serveur http (Apache, IIS ou autre). À ce moment-là, une analyse est faite du fichier appelé et si du PHP est trouvé, le serveur va "interpeller" l'interpréteur PHP pour lui dire "Traduis-moi ça en langage client : lorsque ce sera prêt, le serveur va envoyer vers le client (ton navigateur) une page complète qui ne comportera que du langage client, c'est à dire du langage que peut comprendre ton navigateur: il ne reste alors plus que le html, le JavaScript et le CSS.
Donc mettre un bout de code PHP dans un gestionnaire d'évènement, ça va faire quoi selon toi ? Ça va traduire coté serveur l'instruction PHP et la remplacer par un contenu dans un langage client : si ton instruction est:
<?php echo $rep[1]; ?>
Alors la ligne du fichier original qui est:
<a href="#" onClick="<?php $tex=$rep[0] ?>"><?php echo $rep[1]; ?></a>
Sera envoyée au navigateur sous la forme :
<a href="#" onClick="<?php $tex=$rep[0] ?>">Valeur de la variable $rep[0]</a>
Ce qui veut dire que si cette valeur est une instruction JavaScript correcte, le code est valable, mais si c'est une simple caine de caractère, ça ne veut rien dire et le navigateur ne saura pas quoi en faire, et donc l'ajoutera tel quel dans le code html. L'interpréteur JavaScript de son coté (dans ton navigateur) ne comprendra pas plus l'instruction et enregistrera une erreur dans la console.
Est-ce que ça peut t'aider à comprendre le problème comme ça ?
Le PHP n'est pas un langage évènementiel et s'exécute coté serveur.
Comprends le principe global suivant : si tu as une page qui contient du HTML, du JavaScript, du PHP et du style CSS par exemple, lorsque tu vas appeler cette page dans ton navigateur, la requête est reçue par le serveur http (Apache, IIS ou autre). À ce moment-là, une analyse est faite du fichier appelé et si du PHP est trouvé, le serveur va "interpeller" l'interpréteur PHP pour lui dire "Traduis-moi ça en langage client : lorsque ce sera prêt, le serveur va envoyer vers le client (ton navigateur) une page complète qui ne comportera que du langage client, c'est à dire du langage que peut comprendre ton navigateur: il ne reste alors plus que le html, le JavaScript et le CSS.
Donc mettre un bout de code PHP dans un gestionnaire d'évènement, ça va faire quoi selon toi ? Ça va traduire coté serveur l'instruction PHP et la remplacer par un contenu dans un langage client : si ton instruction est:
[php]<?php echo $rep[1]; ?>[/php]
Alors la ligne du fichier original qui est:
[php]<a href="#" onClick="<?php $tex=$rep[0] ?>"><?php echo $rep[1]; ?></a>[/php]
Sera envoyée au navigateur sous la forme :
[php]<a href="#" onClick="<?php $tex=$rep[0] ?>">Valeur de la variable $rep[0]</a>[/php]
Ce qui veut dire que si cette valeur est une instruction JavaScript correcte, le code est valable, mais si c'est une simple caine de caractère, ça ne veut rien dire et le navigateur ne saura pas quoi en faire, et donc l'ajoutera tel quel dans le code html. L'interpréteur JavaScript de son coté (dans ton navigateur) ne comprendra pas plus l'instruction et enregistrera une erreur dans la console.
Est-ce que ça peut t'aider à comprendre le problème comme ça ?