0

Plansというクラスがあります。私が使用しているメソッドは 2 つあります: indexAction() deletePlan($id)。indexAction() は、次の内容で index.html.twig をレンダリングします。

index.html.twig

<tr>
  <td>{{ item.name }}</td>
  <td>{{ item.description}}</td>
  <td><a href="">Delete</td>
</tr>

最後のタグの削除リンクについては、実際に deletePlan($id) メソッドを実行する必要があります。これをリダイレクト先の実際のページにしたくありません。deletePlan($id) メソッドを呼び出し、true または false を返すかどうかをキャプチャし、AJAX を使用して (行) を非表示にする予定です。

問題は、実際にページ設定、ルート設定、およびメソッドの名前を deletePlanAction($id) に変更せずに、小枝ファイル内で deletePlan($id) メソッドを呼び出すことはできますか?

ありがとう!:)

4

1 に答える 1

0

テンプレートから単純にメソッドを呼び出すことはできません。リクエストを処理するアクションを作成する必要があります。このアクションのルートを AJAX 呼び出しで使用できます。また、合格する必要がありますid。タグのクリックで AJAX 呼び出しを実行する JavaScript を設定します<a>

jQuery を使用すると、AJAX 部分は次のようになります。

$.post('{{ path('routeNameOfDeleteAction') }}', function(data) {
    $('someSelector').html(data);
});

これを AJAX を使用してのみ機能させたい場合は、これを削除アクションに追加できます。

if ($this->getRequest()->isXmlHttpRequest()) {
    return $this->redirect($this->generateUrl('routeNameOfIndexAction'));
}

true最後に、コントローラーは、またはのような結果を保持する JSON で応答を返すことができますfalse

于 2013-03-28T16:30:54.463 に答える