0

次のようなフォーム要素を作成しています。

$element = $this->CreateElement('select', 'countries');
$element->setLabel('Countries');
$element->setAttrib( 'required', true );
$element->addMultiOptions( array( ''=>'Select', '1'=>'Aus','2'=>'UK',.... ) );

次のコードはフォームを送信しています:

// form
$form = new SomeForm();

// get request
$request = $this->getRequest();

// isPost
if( $request->isPost() ) {

    // isValid
    if( $form->isValid( $request->getPost() ) ) {               
         $values = $form->getValues();    
         // Save values into database here                                      
    } else {            
        $this->view->msg = "Required Fields are missing.";
    } 

} else {        
    $this->view->msg = 'Form is not submitted properly';
}

フォームに適切に入力すると、レコードがデータベースに正常に保存されます。しかし、国を選択しないと、フォームも送信されます。「必須フィールドがありません」と表示する必要があると思います。必要なフィールドが欠落している場合、データベースに値を挿入する代わりにメッセージを送信します。

何が欠けていますか??

ありがとう

4

1 に答える 1

5

この行:

$element->setAttrib( 'required', true );

あなたが思っていることを実際には行いません (HTML 属性を設定します)。

あなたはおそらく欲しかった

$element->setRequired(true);

(これは Zend_Form を使用していることを前提としています。投稿したコードからは完全には明らかではありません)。

于 2011-08-13T04:54:02.630 に答える