1

こんにちはみんな私に説明させてください:

$this->view->form = new Application_Form_Kursdaty();

     $url = $this->view->url(
        array(
            'action' => 'details',
            'controller' => $this->getRequest()->getControllerName(),
            'module' => $this->getRequest()->getModuleName(),
            'id' => @@@@@SELECTFIELD[selected]@@@@@@
        ),
        'default',
        true
    );
    $this->view->form->setAction($url);     

私は基本的に、選択したフィールドを選択したページにリダイレクトしたいと考えています。私は本当に何をすべきかわからない、助けてください!

4

2 に答える 2

1

これがあなたの問題です!

選択要素の値は、送信ボタンが押されるまで設定されません。したがって、投稿後まで値にアクセスできません。

したがって、PHP でやりたいことを行う方法は、2 つのアクションを使用することです。最初のアクションは投稿を受け取り、検証を実行します。その後、データを取得し、その選択の値に応じて選択したアクションに転送できます。

public function formAction() {
    $form = new Form();
    $form->setAction('/url');

    if ($this->_request->isPost()){
        if ($form->isValid($this->_request->getPost()){
            $select = $form->getValue('select');
            switch($select) {
                case ('value1') :
                    $this->_forward('action');
                    break;
                case ('value2') :
                     $this->_forward('action');
                     break;
                default :
                      $this->_forward('action');
            }
        }
    } else {
        $this->view->form = $form
}

これは、最初のアクションで検討するワークフローのようなものかもしれません。詳細を検討する_forward必要がありますが、現在のリクエスト オブジェクトを失うことなくリダイレ​​クトを実行する必要があるため、このインスタンスでは実行できるはずです。

于 2012-09-04T02:17:10.407 に答える
1

Zend_Formフォームが送信されたデータのインスタンスであり、データが取り込まれている場合は、$form->getValue($nameOfField)またはを使用できます$form->getElement($elementName)->getValue()

于 2012-09-03T17:50:15.370 に答える