2016-09-20 2 views
1

Ist es üblich, viele separate. PHP-Dateien zu erstellen, wenn Sie AJAX verwenden? Oder gibt es eine Möglichkeit, bestimmte Funktionen relativ einfach aufzurufen?Aufruf von PHP-Funktionen mit AJAX anstelle von PHP-Dateien

zum Beispiel für meine checkusername Code muss ich eine separate PHP-Datei erstellen, die diese tut

xhttp.open("GET", "CheckUsername.php?q="+name, true); 

und jetzt, wenn ich auf eine Reihe von Ajax-Aufrufe gehen und erstellen Ich werde viele getrennte müssen. PHP-Dateien. Gibt es eine einfache Möglichkeit, diese zu gruppieren? ob es in Funktionen oder sogar in einem Ordner ist, in den ich alles hineinlegen kann?

+0

Suchen Sie in jedem Frameworks: yii, Lumen, Laravel, Silex und so weiter. Sie gruppieren Anfrage in mehrere Klassen. – Evgeniy

+1

Es gibt viele mögliche Antworten darauf. Sie können natürlich Dateien nach Ordnern gruppieren. Sie können einen Dienst erstellen, der verschiedene Endpunkte 'MyService.php/CheckUsername' usw. akzeptiert. Ich bin mir sicher, dass es viele andere Lösungen gibt, Ihre Frage ist jedoch eher vage. – mhatch

+0

Bitte sehen Sie meine [** Antwort auf diese andere Frage **] (http://stackoverflow.com/a/28291235/2191572) und betrachten Sie die möglichen Sicherheitsrisiken. – MonkeyZeus

Antwort

0

Wenn Sie ein MVC-Framework verwenden, können Sie in der Regel alle Ajax-Anfragen an eine Controller-Datei weiterleiten und für jeden unterschiedlichen Ajax-Aufruf verschiedene Methoden aufrufen.

Wenn Sie keine MVC verwenden möchten, können Sie einen Pseudo-Router in 1 Datei erstellen, indem Sie einen Abfrageparameter (über Ihre Ajax-Anforderung) übergeben, der Funktionen mithilfe von Variablenvariablen unterscheidet. Zum Beispiel sieht, wenn Ihre Backend-Datei wie folgt:

<?php 

    $function_id = $_GET['function_id'];// this acts as a low level but functional router 

    function func1() {} 

    function func2() {} 

    echo $function_id(); 

?> 

Sie Abfrageparameter hinzufügen können, wie so:

var func = 'func1'; 

xhttp.open("GET", "CheckUsername.php?q="+name+"&function_id="+func, true); 

Der Rückgabewert wird von der Funktion seinen func1() in diesem Fall. $_GET hat einen globalen Gültigkeitsbereich. Sie müssen es daher nicht als Argument an die Funktionen in Ihrer Backend-Datei übergeben.

Verwandte Themen