首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend窗体-设置多个复选框的默认值

Zend窗体-设置多个复选框的默认值
EN

Stack Overflow用户
提问于 2011-09-22 18:39:29
回答 2查看 7.5K关注 0票数 1

我的复选框列表的HTML如下所示:

代码语言:javascript
复制
<dt id="list-label">
    <label for="list" class="optional">
        Choose which feeds to include in the mix
    </label>
</dt>

<dd id="list-element">
    <label for="list-1">
        <input type="checkbox" name="list[]" id="list-1" value="1">Marko Polo
    </label>

    <br />

    <label for="list-2">
        <input type="checkbox" name="list[]" id="list-2" value="2">Jeano Polo
    </label>
</dd>

我正在尝试用selected=selected预填充数据库中值为1的人。我认为以下几点是可行的:

代码语言:javascript
复制
$form->setDefaults(array('list-1'=>1,'list-2'=>1));

但事实并非如此。有什么办法吗?

编辑

代码语言:javascript
复制
Here is my form class code:

            $model = new Admin_Model_Db();
            $model->setTableName('graduates');
            $gradA = $model->getAllGraduates();

            foreach ($gradA as $grad){
                if (!empty($grad['twitter'])){
                    $twitter[$grad['id']] = $grad['firstname'] . ' ' . $grad['lastname'];
                }
            }

            $list = $this->CreateElement('multicheckbox', 'list')
                                  ->setLabel('Choose which feeds to include in the mix')
                                  ->setRequired(false)
                                  ->setMultiOptions($twitter);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-22 19:33:15

您的表单元素名为list[],这意味着当您的框被选中并以这种方式获得它们的值时:

代码语言:javascript
复制
 $list = $form->getElement('list')->getValue();

$list的值为数组(1,2)

因此,从逻辑上讲,这应该是可行的:

代码语言:javascript
复制
$form->setDefaults(array('list'=>array(1,2));
//if not, try with strings instead of integers array('1','2') 
票数 2
EN

Stack Overflow用户

发布于 2011-09-22 18:57:34

试试这个:

代码语言:javascript
复制
$all_record = array('k1'=>'v1', 'k2'=>'v2');
$checked_values = aray('k1');

$checkbox = new Zend_Form_Element_MultiCheckbox('id', 
     array('multiOptions' => $all_records)
);

$checkbox->setValue($checked_values);

// ...

$this->addElement($checkbox);

当然,$this是Zend_Form :)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7519740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档