Zend:如何将数据填充到复选框?

时间:2010-03-20 05:32:21

标签: php zend-framework checkbox populate

我正在研究zend。我有一个带有一些复选框的表单。我想从数据库中获取数据并将此数据填充到此表单中。如果“1”存储在表字段中,则勾选复选框,否则不管它。在文本框和下拉列表中,可以轻松填充数据,但如何检查操作中的复选框。

我在form.php中创建了这样的复选框和文本框元素:

// Person name
$person = $this->CreateElement('text', 'name');
$person->setLabel('Name');
$elements[] = $person;    

// Organization name
$person = $this->CreateElement('text', 'organization');
$person->setLabel('Organization');
$elements[] = $person;       

// isAdmin Checkbox
$isAdmin = $this->CreateElement('checkbox', 'isAdmin');
$isAdmin->setLabel('Admin');
$elements[] = $isAdmin;

$this->addElements($elements);
$this->setElementDecorators(array('ViewHelper'));

// set form decorator (what script will render the form)
$this->setDecorators(array(array('ViewScript' , array('viewScript' => 'organization/accessroles-form.phtml'))));

我如何呈现表单:

<form name="myform" action="<?= $this->element->getAction() ?>" method="<?= $this->element->getMethod() ?>" id="accessrolesform">

<table align="center" width="100%" border="0"><tbody>

<tr>
    <td><?= $this->element->name ?></td>
</tr>

<tr>
    <td><?= $this->element->organization ?></td>
</tr>


<tr>
    <td><?= $this->element->isAdmin ?></td>
</tr>

</table>
</form>

并填充这样的数据(例如):

// Prepare data to populate
$data['name'] = 'Naveed';
$data['organization'] = 'ABC';
$data['isAdmin'] = '1';

// Populate editable data
$this->view->form->populate( $data );

它是在文本框中填充数据但不检查复选框?知道如何检查动作中的复选框吗?

由于

2 个答案:

答案 0 :(得分:4)

从手册:

  

默认情况下,选中的值为“1”,   和未选中的值'0'。您可以   使用指定要使用的值   setCheckedValue()和   setUncheckedValue()访问器,   分别。另外,设置   该值设置的checked属性   复选框。您可以使用查询   isChecked()或只是访问   属性。使用setChecked($ flag)   方法都会设置状态   标志以及设置相应的   已检查或未选中的值   元件。请在使用此方法时   设置a的已检查状态   复选框元素以确保该值   设置得当。

$checkboxElement->setChecked(true);

将复选框的值设置为'checked =“checked”,值为“1”。

答案 1 :(得分:0)

或使用$

data['isAdmin'] = 1; // NOT string 
相关问题