Comment appeler une fonction JavaScript depuis PHP?
<?php
jsfunction();
// or
echo(jsfunction());
// or
// Anything else?
Le code suivant provient de xyz.html (sur un clic de bouton), il appelle un wait()
dans un xyz.js externe . Cela wait()
appelle wait.php.
function wait()
{
xmlhttp=GetXmlHttpObject();
var url="wait.php"; \
xmlhttp.onreadystatechange=statechanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function statechanged()
{
if(xmlhttp.readyState==4) {
document.getElementById("txt").innerHTML=xmlhttp.responseText;
}
}
et wait.php
<?php echo "<script> loadxml(); </script>";
où loadxml()
appelle le code d'un autre fichier PHP de la même manière.
Le loadxml()
fonctionne très bien par ailleurs, mais ce n'est pas appelé la façon dont je le veux.
php
javascript
Zeeshan Rang
la source
la source
Réponses:
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:
Passer du mode php au mode de sortie directe:
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
Maintenant, si vous êtes déterminé à envoyer un nom de fonction de PHP à l'appel AJAX, vous pouvez également le faire.
* Ou JSON ou XML etc.
la source
J'utilise toujours juste
echo "<script> function(); </script>";
ou quelque chose de similaire. vous n'appelez pas techniquement la fonction en PHP, mais c'est aussi proche que possible.la source
echo
dans une variable dansPHP
?À l'heure actuelle (février 2012), il existe une nouvelle fonctionnalité pour cela. Vérifiez ici
Échantillon de code (tiré du Web):
la source
Tu ne peux pas. Vous pouvez appeler une fonction JS à partir du code HTML édité par PHP, mais c'est une toute autre chose.
la source
Ce n'est pas possible. PHP est un langage côté serveur et côté client JavaScript et ils ne se connaissent pas vraiment. Vous auriez besoin d'un interpréteur JavaScript côté serveur (comme Aptanas Jaxer). Peut-être que ce que vous voulez réellement faire est d'utiliser une architecture comme Ajax (la fonction JavaScript appelle le script PHP de manière asynchrone et fait quelque chose avec le résultat).
la source
Si vous voulez l'écho pour une exécution ultérieure, c'est ok
Si vous voulez exécuter le JS et utiliser les résultats en PHP, utilisez V8JS
Vous pouvez vous référer ici pour plus de référence: Que sont les extensions dans php v8js?
Si vous souhaitez exécuter HTML et JS et utiliser la sortie en PHP http://htmlunit.sourceforge.net/ est votre solution
la source
PHP s'exécute sur le serveur. JavaScript s'exécute dans le client. Donc php ne peut pas appeler une fonction JavaScript.
la source
vous pouvez également essayer celui-ci: -
la source
essayez comme ça
la source
Vous ne pourrez peut-être pas le faire directement, mais bibliothèque Xajax est assez proche de ce que vous voulez. Je vais démontrer avec un exemple. Voici un bouton sur une page Web:
Notre supposition intuitive serait que
xajax_addCity()
c'est une fonction Javascript, non? Eh bien, bien et mal. Ce que Xajax permet, c'est que nous n'avons aucune fonction JS appeléexajax_addCity()
, mais ce que nous avons, c'est une fonction PHP appeléeaddCity()
qui peut faire tout ce que PHP fait!Pensez-y une minute. Nous invoquons virtuellement une fonction PHP à partir du code Javascript! Cet exemple trop simplifié était juste pour aiguiser l'appétit, une meilleure explication est sur le site Xajax, amusez-vous!
la source