Zend: Как заполнить данные флажками? - PullRequest
2 голосов
/ 20 марта 2010

Я работаю над 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 ]

4 голосов
/ 20 марта 2010

Из руководства:

По умолчанию проверяемое значение равно 1, и непроверенное значение «0». Вы можете укажите значения для использования с помощью setCheckedValue () и методы доступа setUncheckedValue (), соответственно. Дополнительно настройка значение устанавливает проверенное свойство флажок. Вы можете запросить это, используя isChecked () или просто доступ к имущество. Использование setChecked ($ flag) Метод будет оба установить состояние флаг, а также установить соответствующий отмеченное или не отмеченное значение в элемент. Пожалуйста, используйте этот метод, когда установка проверенного состояния элемент флажка, чтобы обеспечить значение установлен правильно.

$checkboxElement->setChecked(true);

установит значение флажка в 'флажок = "проверен" со значением "1".

0 голосов
/ 04 августа 2010

или используйте $

data['isAdmin'] = 1; // NOT string 
...