2009-01-16 7 views
8

Voici un exemple de code pour créer un élément de bouton radio avec les options Oui/Non dans Zend_Form. Des idées sur la façon de définir la réponse requise sur Oui, donc si Non est sélectionné, la validation échouera? Le code ci-dessous acceptera Oui ou NonÉlément radio Zend_Form

$question= new Zend_Form_Element_Radio('question'); 
    $question->setRequired(true) 
     ->setLabel('Are you sure?') 
     ->setMultiOptions(array('Yes', 'No')); 

Répondre

6

Je ne sais pas si cela est la meilleure façon, mais cela a fonctionné pour moi:

$questionValid = new Zend_Validate_InArray(array('Yes')); 
$questionValid->setMessage('Yes is required!'); 

$question = new Zend_Form_Element_Radio('question'); 
$question->setRequired(true) 
    ->setLabel('Are you sure?') 
    ->setMultiOptions(array('Yes'=>'Yes', 'No'=>'No')) 
    ->addValidator($questionValid); 
+0

fonctionne très bien, merci – dittonamed

0

Une façon plus rapide, bien que cela ne fonctionnerait pas pour d'autres situations:

$question = new Zend_Form_Element_Radio('question'); 
$question->setRequired(true) 
    ->setLabel('Are you sure?') 
    ->setMultiOptions(array('Yes'=>'Yes', 'No'=>'No')) 
    ->addValidator('StringLength', false, array('min' => 3, 'messages' => "You must be sure.")); 

Depuis « non » est inférieur à 3 caractères, cela échouera à moins que « oui » est sélectionné. C'est un peu "hacky", mais j'aime ça car il utilise moins de code et utilise aussi les validateurs intégrés.