Cela peut être une réponse simple, mais j'utilise $ .ajax de jQuery pour appeler un script PHP. Ce que je veux faire, c'est mettre ce script PHP dans une fonction et appeler la fonction PHP à partir de javascript.
<?php
if(isset($_POST['something'] {
//do something
}
?>
pour ça
<?php
function test() {
if(isset($_POST['something'] {
//do something.
}
}
?>
Comment appeler cette fonction en javascript? Pour le moment, j'utilise juste $ .ajax avec le fichier PHP répertorié.
Réponses:
Utilisez
$.ajax
pour appeler un contexte de serveur (ou une URL, ou autre) pour invoquer une «action» particulière. Ce que vous voulez, c'est quelque chose comme:Côté serveur, le
action
paramètre POST doit être lu et la valeur correspondante doit pointer vers la méthode à invoquer, par exemple:Je crois que c'est une simple incarnation du modèle Command .
la source
J'ai développé un plugin jQuery qui vous permet d'appeler n'importe quelle fonction PHP de base ou même des fonctions PHP définies par l'utilisateur comme méthodes du plugin: jquery.php
Après avoir inclus jquery et jquery.php dans la tête de notre document et placé request_handler.php sur notre serveur, nous commencerions à utiliser le plugin de la manière décrite ci-dessous.
Pour faciliter l'utilisation, reportez-vous à la fonction de manière simple:
Puis initialisez le plugin:
Et maintenant quelques scénarios d'utilisation:
Démonstration du chaînage de fonctions PHP:
Démonstration de l'envoi d'un bloc JSON de pseudo-code PHP:
La configuration du backend fournit une liste blanche afin que vous puissiez restreindre les fonctions pouvant être appelées. Il existe également quelques autres modèles de travail avec PHP décrits par le plugin.
la source
Je m'en tiendrai à l'approche normale pour appeler le fichier directement, mais si vous voulez vraiment appeler une fonction, jetez un œil à JSON-RPC (JSON Remote Procedure Call).
Vous envoyez essentiellement une chaîne JSON dans un format spécifique au serveur, par exemple
qui inclut la fonction à appeler et les paramètres de cette fonction.
Bien entendu, le serveur doit savoir comment gérer ces demandes.
Voici le plugin jQuery pour JSON-RPC et par exemple le serveur Zend JSON comme implémentation serveur en PHP.
Cela peut être excessif pour un petit projet ou moins de fonctions. Le moyen le plus simple serait la réponse de Karim . D'autre part, JSON-RPC est un standard.
la source
Vous ne pouvez pas appeler une fonction PHP avec Javascript, de la même manière que vous ne pouvez pas appeler des fonctions PHP arbitraires lorsque vous chargez une page (pensez simplement aux implications de sécurité).
Si vous avez besoin d'encapsuler votre code dans une fonction pour une raison quelconque, pourquoi ne mettez-vous pas un appel de fonction sous la définition de la fonction, par exemple:
Ou, utilisez un PHP include:
la source
Vous allez devoir exposer un point de terminaison (URL) dans votre système qui acceptera la requête POST de l'appel ajax dans jQuery.
Ensuite, lors du traitement de cette URL à partir de PHP, vous appelleriez votre fonction et renvoyer le résultat dans le format approprié (JSON très probablement, ou XML si vous préférez).
la source
Vous pouvez utiliser ma bibliothèque qui le fait automatiquement, je l'améliore depuis 2 ans http://phery-php-ajax.net
Le javascript serait simple comme
Vous pouvez transmettre toute la partie javascript dynamique au serveur, avec un générateur de requêtes comme une interface chaînable, et vous pouvez transmettre tout type de données au PHP. Par exemple, certaines fonctions qui prendraient trop de place du côté javascript, pourraient être appelées dans le serveur en utilisant ceci (dans cet exemple, mcrypt, qui en javascript serait presque impossible à accomplir):
et dans le serveur
Maintenant, le
variable
aura les données cryptées.la source