1

私はjQueryとAjaxにまったく慣れていませんが、Hello Worldの実行方法、selectタグの設定方法などを学ぶことができました。問題は、構造化PHPを使用したくないということです。私が学んだ方法では、$。getJSONを使用してPHPファイルを呼び出す必要があり、そのファイルは結果を「エコー」する必要があります。私が欲しいのは、実際にはいくつかのメソッドを持つクラスであるPHPファイルを呼び出せるようにすることです。メソッドの戻り値は、単なるエコー結果ではなく、JavaScriptが受け取るものになります。

ご清聴ありがとうございました。

追伸:私は、Amfphpを使用したPHP-OOPおよびFlex+PHPの経験が豊富です。別のバージョンのビューを作成しようとしていますが、Flexがすでに使用しているクラスを再利用したいと思います。

4

2 に答える 2

5

jQueryはコンピューター上で実行され、PHPはサーバー上で実行されます。PHPとjQueryは、一連の巧妙に作成された文字列を介してのみ通信できます。サーバーでは、オブジェクトの作成、メソッドの実行、出力の操作などを自由に行うことができます。ただし、そのデータをjQueryアプリケーション(クライアントのマシンで実行中)にフィードバックする場合は、PHPスクリプトの結果をエコー(または出力)する必要があります。

あなたはこのようなことを考えるかもしれません:

$.post('server.php', { 'class':'foo', 'method':'bar' }, function( response ) {
  /* do something with the output of $foo->bar(); */
});

ここでわかるように、サーバーで呼び出したいクラスとメソッドを定義できます。からserver.php、何をインスタンス化し、どのメソッドを実行するかを調べて決定します$_POST['class']$_POST['method']

于 2012-04-20T14:57:58.420 に答える
1

AMFはHTTPとはどういうわけか異なり、プロトコルも異なります。

AJAX(jQueryかどうか)を使用する場合、OOPメソッドではなくURIでHTTPメソッドを呼び出します。したがって、すべてが少なくとも2つのマッピングになります。

  • アプリケーションロジックはメソッドとURIにマップされます。
  • メソッドとURIにマップされたJavascriptコード。

Respect\Restを使用したサンプルは次のとおりです。

$router->get('/users/*', function($userName) {
    return MyDatabaseLayer::fetchUser($userName); //Illustrative
})->accept(
    'application/json' => function($data) {
        header('Content-type: application/json');
        return json_encode($data);
    }
);

ここで、jQueryの部分は次のとおりです。

$.getJSON('/users/alganet', function(user) {
    alert(user.name);
});

さまざまなアクションに適切なHTTPメソッドを使用する必要があります。ユーザーの保存は次のようになります。

$router->post('/users/*', function($userName) {
    return MyDatabaseLayer::saveUser($_POST['user']); //Illustrative
});

jQuery:

$.post('/users', $("$userform").serialize());

4つの主要なHTTPメソッドがあります:GET、POST、PUT、およびDELETE。GETとPOSTが最も一般的なものです。

すばらしい雑学があります。HTTP、REST、AMFの両方が同じ人物であるRoyFieldingによって作成されました。

于 2012-04-20T15:05:49.617 に答える