覆盖结束表单复选框


Overwriting zend form 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文档页面上查找,这就是它必须的方式。

我不确定我理解你的问题,但是你可以使用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);
}