覆盖zend表单复选框

时间:2014-07-09 14:11:44

标签: php zend-framework checkbox

我的zend表单复选框有问题。

$this->addElement('checkbox', 'languages', array(
        'label'         => 'Languages',
        'class'         => 'check_1',
        'name'          => 'checkset',
        'checkedValue'  => '1',
        'uncheckedValue'=> '0'
    ));

我创建了这个复选框并覆盖了checkedValue和uncheckedValue但是当我调试它时,它有完全不同的值:

$values = $form_duplicate->getValues();
        var_dump($values);

结果如下:

["languages"]=> string(1) "0"

我无法理解问题出在哪里。我查看了zend文档页面,这是必须的。

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题,但您可以使用setCheckedValuesetUncheckedValue方法更改默认值,如下所示:

$langages = new Zend_Form_Element_Checkbox('languages', array(
    'label'         => 'Languages',
    'class'         => 'check_1',
    'name'          => 'checkset'
));
$langages->setCheckedValue('value_check');
$langages->setUncheckedValue('value_uncheck');
$this->addElement($langages);

恢复你的价值观:

if ($this->getRequest()->isPost()) {
    $formData = $this->getRequest()->getPost();

    // isValid($formData) filled the form with the datas returned
    if ($form_duplicate->isValid($formData)) {
        // treatment
    }
    $values = $form_duplicate->getValues();
    var_dump($values);
}