Symfony-ajax-control
Symfony-Ajaxコントロール
AJAXは、Webプログラミングの最新技術です。 ページを更新することなく、Webページ内のデータを非同期で送受信するオプションを提供します。 この章でSymfony AJAXプログラミングを学びましょう。
symfonyフレームワークは、リクエストタイプがAJAXであるかどうかを識別するオプションを提供します。 Symfony HttpFoundationコンポーネントのリクエストクラスには、この目的のためのメソッドisXmlHttpRequest()があります。 AJAX要求が行われた場合、現在の要求オブジェクトのisXmlHttpRequest()メソッドはtrueを返し、そうでない場合はfalseを返します。
このメソッドは、サーバー側でAJAX要求を適切に処理するために使用されます。
Symfonyは、JSON形式のレスポンスを作成するためのJSONベースのレスポンスクラスJsonResponseも提供します。 これら2つの方法を組み合わせて、シンプルでクリーンなAJAXベースのWebアプリケーションを作成できます。
AJAX-作業例
新しいページ student/ajax を学生アプリケーションに追加し、学生情報を非同期に取得してみましょう。
- ステップ1 *-StudentController(src/AppBundle/Controller/StudentController.php)にajaxActionメソッドを追加します。
ここで、リクエストがAJAXの場合、生徒情報を取得し、JSONとしてエンコードし、 JsonResponse オブジェクトを使用して返します。 それ以外の場合は、対応するビューをレンダリングするだけです。
手順2 *-Studentビューディレクトリ *app/Resources/views/student/ にビューファイル ajaxl.twig を作成し、次のコードを追加します。
ここでは、AJAX呼び出しを使用して生徒情報を読み込むためのアンカータグ(id:Loadstudent)を作成しました。 AJAX呼び出しは、JQueryを使用して行われます。 ユーザーがクリックすると、loadstudentタグに関連付けられたイベントがアクティブになります。 次に、AJAX呼び出しを使用して生徒情報を取得し、必要なHTMLコードを動的に生成します。
ステップ3-最後に、アプリケーション http://localhost:8000/student/ajax を実行し、[学生情報の読み込み]アンカータブをクリックします。