いくつかのテキスト フィールドを含むフォームがあり、フォームを同じコントローラーに送信する必要があるプレビュー ボタンがあります。次に、コントローラーで値を抽出し、テンプレートが表示できるようにこれらの値をフォームに入力する必要があります。これを達成するための最良の方法は何ですか?私は初心者なので、明確にしてください。
2 に答える
1
サンプルコントローラー:
public function myControllerName(sfWebRequest $request)
{
$this->form = new myFormClass();
}
<?php echo $form->renderFormTag( url_for('@yourRoutingName'), array('method' => 'POST') ); ?>
テンプレートで使用し@yourRoutingName
、コントローラーを指すものに変更します。
次に、コントローラーを次のように変更します。
public function myControllerName(sfWebRequest $request)
{
$this->form = new myFormClass();
if ($request->isMethod(sfRequest::POST)
{
$this->form->bind( $request->getParameter( $this->form->getName() ) );
// Check if the form is valid.
if ($this->form->isValid())
{
$this->form->save();
// More logic here.
}
}
}
この$this->form->bind( $request->getParameter( $this->form->getName() ) );
部分は、投稿されたデータをフォームにバインドし$this->form->isValid()
、フォームが有効かどうかにかかわらずブール値を返します。
于 2011-12-09T09:43:17.663 に答える
0
これを試しましたか?
$this->redirect($request->getReferer()); //action
そうでない場合は、試してみて、うまくいくかどうかを確認してください。
ありがとう。
于 2011-12-09T09:40:41.947 に答える