3

私は2つの依存コンボボックスを持っています:

 $this->addElement('Select', 'Category',array(
         'label'      => 'Category:',
         'AutoComplete'=> true,              
         'multiOptions' => array('0' => '-Category-',$a->GetCategories(),'2' => '-Add             category-'),
         'required' => true ));

  $this->addElement('Select', 'SubCategory',array(
          'label'      => 'Sub Category:',
          'AutoComplete'=> true, 
          //'multiOptions' => array('0' => '-Select Category-'),
          'required' => true )); 

2 番目のコンテンツを表示したいので、コントローラーで次のようにします。

     if ($this->getRequest()->isPost()) {  //Le formulaire est-il posté ?
     $formData = $this->getRequest()->getPost(); // récupère les infos des formulaires

     if ($form->isValid($formData)) { //Si le formulaire passe la validation
     $v = $form->getValues(); // On récupère les données du formulaire

     $Category= $v['Category'];
     $a=$form->getElement('Category')->getMultiOption('1');
     $cat=$a[$Category];

     $SubCategory =$v['SubCategory '];
     $b=$form->getElement('SubCategory')->getMultiOption($SubCategory);

     $this->view->test =  $b ;


     }

     else {$form->populate($formData);}

    /*Appel du web service d'authentification*/    
  }

送信ボタンをクリックすると、2 番目のコンボボックスが空になり、次のようになります。

'0' は干し草の山に見つかりませんでした

誰かがこれがなぜなのか説明してもらえますか?

4

3 に答える 3

10

エラーメッセージはinArrayバリデータからのものです。select要素の適切なキーを設定することで無効にすることができます:

'registerInArrayValidator' => false
于 2012-04-18T09:08:27.047 に答える
0

echoコントローラクラスから呼び出すことでMVCの概念を破っています。アクションコントローラは出力を生成する必要はありません。ビューだけがそれをしなければなりません!

于 2012-04-18T08:34:07.957 に答える