En ce qui concerne PHP (ou vraiment, un serveur web en général), une page HTML n'est rien de plus compliqué qu'une grosse chaîne de caractères.
Toutes les fantaisies que vous pouvez faire avec un langage comme le PHP - lire des bases de données et des services web et tout cela - l'objectif final est exactement le même principe de base : générer une chaîne de caractères HTML*.
Votre grande chaîne HTML ne devient rien de plus spécial que cela jusqu'à ce qu'elle soit chargée par un navigateur web. Une fois que le navigateur a chargé la page, puis toutes les autres magies se produisent - mise en page, modèle de boîte, génération de DOM, et bien d'autres choses, y compris l'exécution de JavaScript.
Ainsi, vous n'appelez pas JavaScript depuis PHP, mais vous incluez un appel de fonction JavaScript dans votre résultat.
Il existe de nombreuses façons de le faire, mais en voici quelques-unes.
En utilisant uniquement PHP :
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Passage du mode php au mode de sortie directe :
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
Vous n'avez pas besoin de renvoyer un nom de fonction ou quoi que ce soit d'autre. Tout d'abord, arrêtez d'écrire des requêtes AJAX à la main. Vous ne faites que vous rendre la tâche difficile. Prenez jQuery ou l'un des autres excellents frameworks qui existent.
Deuxièmement, comprenez que vous allez déjà exécuter du code javascript une fois que la réponse est reçue de l'appel AJAX.
Voici un exemple de ce que je pense que vous faites avec l'AJAX de jQuery.
$.get(
'wait.php',
{},
function(returnedData) {
document.getElementById("txt").innerHTML = returnedData;
// Ok, here's where you can call another function
someOtherFunctionYouWantToCall();
// But unless you really need to, you don't have to
// We're already in the middle of a function execution
// right here, so you might as well put your code here
},
'text'
);
function someOtherFunctionYouWantToCall() {
// stuff
}
Maintenant, si vous tenez absolument à renvoyer un nom de fonction de PHP à l'appel AJAX, vous pouvez le faire aussi.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Ou JSON ou XML, etc.
1 votes
De même, mon javascript et mon php sont externes.