2016-09-20 11 views
1

ajaxを使用する際には、たくさんの別々の.phpファイルを作成するのが標準的な方法ですか?または比較的簡単に特定の関数を呼び出す方法がありますか?例えばphpファイルの代わりにajaxを使用してphp関数を呼び出す

は、私のcheckusernameコードのために私はこの

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

と私はAJAX呼び出しの束を移動して、作成した場合、今、私は別々の多くが必要になりますし、別のphpファイルを作成する必要があります。 PHPファイル。これらをグループ化する簡単な方法はありますか?それが機能しているのか、それとも私がそれらをすべて入れることができるフォルダであろうと、

+0

フレームワークを調べる:yii、lumen、laravel、silexなど。彼らはいくつかのクラスに要求をグループ化します。 – Evgeniy

+1

これには多くの可能な答えがあります。もちろん、フォルダごとにファイルをグループ化することもできます。異なるエンドポイント 'MyService.php/CheckUsername'などを受け入れるサービスを作成することができます。他の多くのソリューションがあると確信していますが、あなたの質問はむしろあいまいです。 – mhatch

+0

私の[**その他の質問の回答**](http://stackoverflow.com/a/28291235/2191572)を参照して、セキュリティリスクの可能性を検討してください。サーバー側の – MonkeyZeus

答えて

0

MVCフレームワークを使用する場合は、通常、すべてのajaxリクエストを1つのコントローラファイルにルーティングし、異なるajax呼び出しごとに異なるメソッドを呼び出すことができます。

MVCを使用しない場合は、変数変数を使用して関数を区別するクエリパラメータ(ajaxリクエスト経由)を渡すことで、1ファイルに擬似ルーターを作成できます。たとえば、バックエンドファイルは次のように見える場合:あなたがそうのようなクエリパラメータを追加することができます

<?php 

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

    function func1() {} 

    function func2() {} 

    echo $function_id(); 

?> 

var func = 'func1'; 

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

戻り値は、この場合、機能func1()からとなります。 $_GETにはグローバルスコープがあるため、バックエンドファイルの関数の引数として渡す必要はありません。

関連する問題