0

私は半初心者なので、ご容赦ください... 注、この時点ではjQueryもJsonも知りません

私のMVCプロジェクト(私はフレームワークを使用していませんが、プロジェクトはフロントコントローラーとMVCを組み合わせています)には、次のものがあります:
1)いくつかのパラメーターをDAOに送信するコントローラー。DAO は MySQL クエリを実行し、記事の配列をコントローラに送り返します。
2)ユーザーがボタンをクリックして記事から記事に移動できるようにしたいビューレイヤー。私が提案している方法は、JavaScript Ajax 呼び出しを使用して、コントローラーで生成された配列内の次の記事を取得することです。

私の質問は、Ajax 関数によって呼び出される URL は何ですか? 明らかに、コントローラーを呼び出すことはできません (または、できますか?)。コントローラーが配列でインスタンス化する専用の Ajax コンテンツ容器のクラスを追加する必要がありますか? ビューが正しい URL を見つける方法を理解するのが困難です...コントローラーはパラメーターをビューに渡して、クエリを要求する必要がありますか?

4

3 に答える 3

2

XHR (AJAX とも呼ばれます) 呼び出しは、コントローラー レベルでは従来のブラウザー リクエストと同じです。違いは、応答として受け取ることを期待するものだけです。

これは、ビューを完全に実現した場合 (ダム テンプレートだけでなく)、リクエストのタイプはビューにとってのみ重要であることを意味します。拡張子を追加することで簡単に区別できます。

  • http://foo.in/user/list- 簡単なリクエスト
  • http://foo.in/user/list.json- XHR リクエスト

違いは主に、インスタンスに特定の詳細を設定するルーティング メカニズムで認識されRequestます。コントローラーは、RequestインスタンスにisXHRフラグがあることを確認すると、ビューに次のように伝えます

基本的に、同じコントローラーが通常の呼び出しと XHR 呼び出しの両方を処理する必要があります。実際、それがどのタイプのリクエストであるかは気にしません。を生成する必要があるかどうかhtmlxmlまたはjson応答でのみ。

PS:モデル レイヤーは、リクエストの種類によってまったく影響を受けないようにする必要があります。

于 2012-12-01T20:06:13.247 に答える
0

上記の投稿のリストから、記事の編集中にメソッドを呼び出すには、Ajax 構文を知っている必要があると思います。

その方法は次のとおりです。 1. 最初に、コントローラー内で目的を果たすアクションを定義します (このコンテキストで記事を編集する場合があります)。 2. ajax メソッドを使用して、呼び出すコントローラーとアクションを指定します。(この時点では、Articles -- Controller、EditArticle -- Action である必要があります)。

コントロールは、特定のアクション メソッドに自動的に移動します。

よろしく Pavan.G

于 2012-12-03T10:09:08.483 に答える
-3

使用するフレームワークによって異なります。しかし、一般的に:

コントローラーを使用して、AJAX クエリであるという「フラグ」を送信して (たとえば、GET 変数で)、関数を終了できますが、AJAX クエリ用に別のコントローラーを使用することは、より良いルートと見なされます:) とにかく、何かこれに似ています:

function page() {
   if($_GET["is_ajax"] == "1") {
      // return the AJAX query
      return;
   }
// go on with showing the page
}

お役に立てれば!

于 2012-12-01T19:51:49.683 に答える