验证单选按钮

时间:2014-02-19 15:53:32

标签: php cakephp

我有60个不同的问题,您需要以1到10的等级回答(使用单选按钮)。

每个答案都给出以下代码:

<?php 

    echo $this->Form->create();
    $options = array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10' );
    $attributes = array('legend' => false);

?>

<div class="answers">
    <?php 
    echo $this->Form->radio('answer1', $options, $attributes);
    ?>
</div>

对于answer2,answer3,...同样的事情......

现在我要验证是否实际点击了一个radiobutton而不是空的。 我有这个:

public $validate = array( 
    'answer1' =>array(
        'rule' => 'notEmpty',
        'message' => 'Please choose an answer'
        )       
);

有没有办法一次验证所有60个表单?或者我必须在$validate

中输入每个答案

1 个答案:

答案 0 :(得分:0)

将字段的名称放在数组中并循环遍历它(在模型的构造函数中)

$fields = array('answer1', 'answer2', 'answer3'); //all fields you need to validate
foreach($fields as $field) {
    $validate[$field] = array(
        'rule' => 'notEmpty',
        'message' => 'Please choose an answer'
    );
}

顺便说一句,要检查按钮的值是否有效(在您的情况下是1到10之间的数字),您可以使用inList

public $validate = array(
    'function' => array(
        'allowedChoice' => array(
            'rule'    => array('inList', array('1', '2', '3', '4')) //And so on
        )
    )
);