2

AJAX呼び出しを作成するのに問題はありませんが、各URLは現時点で一意である必要があります。同じファイル内に複数のPHP関数を含め、特定のAJAX呼び出しでPHP関数の1つに具体的にアクセスしたいと思います。

jQueryを使用して、現時点では整数指定で.dataパラメーターを渡し、次にPHPファイルで$ _GETメソッドを使用して、整数で指定された適切な関数を実行しています。

どうすればこれをより良くすることができますか?PHPファイル内の多くの中から特定の関数を呼び出したい。関数ごとに個別のファイルを作成したくない

4

2 に答える 2

1

私はあなたに迅速で汚い解決策をとるように言うことができます、すなわちfunction呼び出しでパラメータを渡す、そして:

switch($_GET['function'])
{

case 'show':    
    show();
    break;

case 'delete':
    delete();
    break;

case 'awesome':

    awesome();
    break;

}

しかし、これは完全に保守不可能です。インクルードの混乱に陥ったり、さらに悪いことに、どこでも再利用できない巨大なコード列に溺れてしまうからです。

ルーティング、つまり、ポイントされているURLと呼び出されている関数の関係を設定し、必要に応じてパラメーターを使用することをお勧めします[以下の2番目の例のように]。

/users              --> printAllUsers
/users/123          --> printUser($id)
/products/beers     --> printProducts($category)
/search             --> search()
...

このようにして、ルーティング自体を応答生成から切り離します。ここでより良い全体的な説明を見つけることができます。次に、フレームワーク全体に依存せずにプロジェクトで使用できる非常に優れたシンライブラリを見つけることができます

ああ、OOP、MVC、RESTfulサービス(もちろんすべてを学ぶ価値がある)のようなもので流行語の海に入る前に、この最初の概念に固執します:それは私がこれらすべてのものを学び始めたときに私が本当に逃したものでした、そしてそれは私にとってはユーレカ。

于 2012-08-31T23:38:14.933 に答える
1

各関数にを割り当て、それに基づいてID送信し、スイッチを使用してその関数を呼び出すことができますAJAX GETID

例:送信GET = 1、またはGET = 2

switch ((int)$_GET['id']) {
    case 1:
        processData();
        break;
    case 2:
        sendEmail();
        break;
    case 3:
        restoreBackup();
        break;
    // ........ and so on
}
于 2012-08-31T23:25:58.593 に答える