0

フィールド名は同じですが、所有物が異なるフォームを作成する必要がある zend フォームに問題があります。これが、フォーム内に必要な入力フィールドです。

現在、私はストレートhtmlを取得していますが、このため検証がありません。

<input type="text" name="travel_guide_tab[4][title]">
<input type="text" name="travel_guide_tab[4][description]">
<input type="text" name="travel_guide_tab[6][title]">
<input type="text" name="travel_guide_tab[6][description]">
4

1 に答える 1

0

Zend Formでは、要素名は(何らかの方法で)一意である必要があります。そうでない場合、要素名は上書きされます。ただし、引き続きhtmlフォームを使用し、 Zend_Filter_Inputを使用してコントローラーでフィルター処理および検証することができます。フィルタクラスと検証クラスは、Zend_Formで使用されるものと同じであり、異なる方法でデータを渡すだけです。
簡単な例、部分的:

public function someAction() {
        //set filters and validators for Zend_Filter_Input
        $filters = array(
            'nameOfInput' => array('HtmlEntities', 'StripTags')
        );
        $validators = array(
            'nameOfInput' => array('NotEmpty', 'Int')
        );
        //assign Input
        $input = new Zend_Filter_Input($filters, $validators);//can also pass the data in constructor (optional)
        $input->setData($this->getRequest()->getParams());
            //check input is valid and is specifically posted as 'Delete Selected'
            if ($input->isValid()) {
            //do some stuff
            }

幸運を。

于 2012-07-22T12:01:44.827 に答える