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.
Tout le travail de fantaisie que vous pouvez faire avec un langage comme PHP - lecture à partir de bases de données et de services Web et tout cela - l'objectif final ultime est exactement le même principe de base: générer une chaîne de code HTML *.
Votre grosse 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 qu'un navigateur charge la page, puis tous les autres - la magie se produit mise en page, substance de modèle de boîte, génération DOM, et bien d' autres choses, y compris l' exécution de JavaScript.
Ainsi, vous "n'appelez pas JavaScript depuis PHP", vous "incluez un appel de fonction JavaScript dans votre sortie".
Il existe de nombreuses façons de procéder, mais en voici quelques-unes.
En utilisant uniquement PHP:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Passer du mode php au mode de sortie directe:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
Vous n'avez pas besoin de retourner un nom de fonction ou quelque chose comme ça. Tout d'abord, arrêtez d'écrire les demandes AJAX à la main. Vous ne faites que vous compliquer la vie. Obtenez jQuery ou l'un des autres excellents cadres disponibles.
Deuxièmement, comprenez que vous allez déjà exécuter du code javascript une fois la réponse reçue de l'appel AJAX.
Voici un exemple de ce que je pense que vous faites avec 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 êtes déterminé à envoyer un nom de fonction de PHP à l'appel AJAX, vous pouvez également le faire.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Ou JSON ou XML etc.