Dies mag eine einfache Antwort sein, aber ich verwende jQuerys $ .ajax, um ein PHP-Skript aufzurufen. Im Grunde möchte ich dieses PHP-Skript in eine Funktion einfügen und die PHP-Funktion aus Javascript aufrufen.
<?php
if(isset($_POST['something'] {
//do something
}
?>
dazu
<?php
function test() {
if(isset($_POST['something'] {
//do something.
}
}
?>
Wie würde ich diese Funktion in Javascript nennen? Im Moment verwende ich nur $ .ajax mit der aufgelisteten PHP-Datei.
Antworten:
Verwenden Sie
$.ajax
diese Option , um einen Serverkontext (oder eine URL oder was auch immer) aufzurufen und eine bestimmte 'Aktion' aufzurufen. Was Sie wollen, ist so etwas wie:Auf der Serverseite sollte der
action
POST-Parameter gelesen werden und der entsprechende Wert sollte auf die aufzurufende Methode verweisen, z.Ich glaube, das ist eine einfache Inkarnation des Befehlsmusters .
quelle
Ich habe ein jQuery-Plugin entwickelt, mit dem Sie jede Kern-PHP-Funktion oder sogar benutzerdefinierte PHP-Funktionen als Methoden des Plugins aufrufen können : jquery.php
Nachdem wir jquery und jquery.php in den Kopf unseres Dokuments aufgenommen und request_handler.php auf unserem Server platziert haben, würden wir das Plugin auf die unten beschriebene Weise verwenden.
Zur Vereinfachung der Verwendung verweisen Sie auf einfache Weise auf die Funktion:
Dann initialisiere das Plugin:
Und jetzt einige Nutzungsszenarien:
Demonstration der Verkettung von PHP-Funktionen:
Demonstration des Sendens eines JSON-Blocks mit PHP-Pseudocode:
Die Backend-Konfiguration bietet eine Whitelist, mit der Sie einschränken können, welche Funktionen aufgerufen werden können. Es gibt noch einige andere Muster für die Arbeit mit PHP, die vom Plugin beschrieben werden.
quelle
Ich würde mich an den normalen Ansatz halten, die Datei direkt aufzurufen, aber wenn Sie wirklich eine Funktion aufrufen möchten, schauen Sie sich JSON-RPC (JSON Remote Procedure Call) an.
Grundsätzlich senden Sie eine JSON-Zeichenfolge in einem bestimmten Format an den Server, z
Dies beinhaltet die aufzurufende Funktion und die Parameter dieser Funktion.
Natürlich muss der Server wissen, wie solche Anfragen zu behandeln sind.
Hier ist das jQuery-Plugin für JSON-RPC und z. B. den Zend JSON-Server als Serverimplementierung in PHP.
Dies kann für ein kleines Projekt oder weniger Funktionen übertrieben sein. Der einfachste Weg wäre Karims Antwort . Andererseits ist JSON-RPC ein Standard.
quelle
Sie können eine PHP-Funktion nicht mit Javascript aufrufen, genauso wie Sie beim Laden einer Seite keine beliebigen PHP-Funktionen aufrufen können (denken Sie nur an die Auswirkungen auf die Sicherheit).
Wenn Sie Ihren Code aus irgendeinem Grund in eine Funktion einschließen müssen, warum setzen Sie auch keinen Funktionsaufruf unter die Funktionsdefinition, z.
Oder verwenden Sie ein PHP gehören:
quelle
Sie müssen einen Endpunkt (URL) in Ihrem System verfügbar machen, der die POST-Anforderung vom Ajax-Aufruf in jQuery akzeptiert.
Wenn Sie dann diese URL aus PHP verarbeiten, rufen Sie Ihre Funktion auf und geben das Ergebnis im entsprechenden Format zurück (höchstwahrscheinlich JSON oder XML, wenn Sie dies bevorzugen).
quelle
Sie können meine Bibliothek verwenden, die dies automatisch tut. Ich habe sie in den letzten 2 Jahren verbessert. Http://phery-php-ajax.net
Das Javascript wäre einfach wie
Sie können den gesamten dynamischen Javascript-Teil mit einem Abfrage-Generator wie einer verkettbaren Schnittstelle an den Server übergeben und jede Art von Daten an PHP zurückgeben. Zum Beispiel könnten einige Funktionen, die auf der Javascript-Seite zu viel Platz beanspruchen würden, auf dem Server damit aufgerufen werden (in diesem Beispiel mcrypt, das in Javascript fast unmöglich zu erreichen wäre):
und auf dem Server
Jetzt
variable
haben die die verschlüsselten Daten.quelle