Ich bin ein Anfänger PHP-Entwickler.
Ich habe ein PHP-Webprojekt mit einer HTML-Seite erstellt, die eine Schaltfläche "Hinzufügen" enthält. Der Name der Seite lautet awards.html. Die Datei "awards.html" enthält die zugehörige JavaScript-Datei "awards.js". Ein Code wird in dieser js-Datei ausgeführt, wenn auf die Schaltfläche Hinzufügen geklickt wird. Dieser Code sendet einen AJAX-Aufruf an eine PHP-Klasse, die sich im Ordner /controller/
im Projekt namens "Award.php" befindet. Diese PHP-Datei enthält Code zum Ausführen einer Funktion namens addFunction () in einer anderen Datei Award.php im Ordner /model/
im Projekt, die ein JSON-Array zurückgibt und auf der Seite awards.html angezeigt wird.
Der Quellcode meiner Dateien lautet wie folgt:
Awards.html
%Vor%awards.js
%Vor% Award.php (befindet sich in /controller/
Ordner)
Award.php (befindet sich in /model/
Ordner)
Mein Code funktioniert einwandfrei und ist fehlerfrei. Jetzt möchte ich eine weitere Schaltfläche in awards.html namens Save hinzufügen, die beim Klicken eine Funktion onSave () in der JS-Datei aufruft. Daher ändert sich der Quellcode meiner Dateien wie folgt:
awards.html
%Vor%awards.js
%Vor%Nun das Problem hier ist, dass, da ich die selbe Award.php-Datei von JS aufrufen möchte, wie ändere ich meine Controller-Award.php-Datei? Meiner Meinung nach sollte es zwei verschiedene Funktionen geben, die Code enthalten würden, um die View Award.php-Klasse zu instanziieren und eine andere Funktion aufzurufen; etwas wie das Folgende:
Award.php
%Vor%Award.php
%Vor%
Aber wie kann ich diese speziellen PHP-Funktionen aus meiner JS-Datei aufrufen? Wenn der Code, den ich oben angenommen habe, korrekt ist, was sollte dann mein JS-Code sein? Kann mir bitte jemand davon erzählen? Antworten werden frühestmöglich geschätzt. Vielen Dank im Voraus.
Okay, ich habe die Lösung des Problems selbst gefunden.
Ich habe einen GET-AJAX-Aufruf mit den Daten in Form von String-Parametern gesendet und eine Erfolgseigenschaft hinzugefügt, um eine Bestätigung zu erhalten, ob mein Code funktioniert hat oder nicht. Ich habe auch meinen Award.php-Code geändert, um den übergebenen Parameter erfolgreich abzufangen.
Also der Quellcode meiner Dateien ist:
awards.js
%Vor%Award.php
%Vor%Es wäre besser, ein MVC-Framework zu verwenden, in dem Sie über Controllerfunktionen zum Hinzufügen und Speichern von Funktionen verfügen. Sie können das erforderliche Verhalten mit Ihrer aktuellen Implementierung erreichen, indem Sie einen Abfragezeichenfolgenparameter senden, um Ihrem PHP-Skript mitzuteilen, welche Funktion aufgerufen werden soll:
%Vor%Ihr js-Code sieht folgendermaßen aus:
%Vor%Es gibt eine Methode, die ich entdeckt habe. Bitte lies meine Erklärung vollständig, um fortzufahren. In Ihrem Ajax-Code (ich denke, Sie verwenden jQuery), fügen Sie eine weitere Info 'perform', mit Wert = PHP-Funktionsname.
%Vor%Fügen Sie dann in Ihrer PHP-Datei diesen Code am Anfang hinzu:
%Vor% Wenn Sie dann mit ajax anrufen, können Sie eine bestimmte Funktion ausführen lassen.
Beispiel Verwendung:
Javascript:
PHP Datei Beispiel.php:
%Vor%
Wenn Sie dies tun, wird automatisch function register () ausgeführt.
Tags und Links javascript html jquery php ajax