zend_form - как получить значения формы за исключением отключения элементов - PullRequest
1 голос
/ 11 августа 2011

Я хочу использовать zend_form для проверки и фильтрации данных POST, а некоторые поля формы являются отключенным элементом, но когда я использую $ form-> isValid ($ post) для фильтрации данных и использую $ form-> getValues ​​() для получения отфильтрованных данных, он возвращает значение всех элементов (включая значение отключенных элементов, которое мне не нужно) ,

, таких как:

<form method="post" action="">
<input type="text" disabled="disabled" name="account_id" value="123456">

<input type="text"  name="name" value="">
<input type="text"  name="email" value="">

<input type="text" disabled="disabled" name="created_date" value="2011-06-12">
<input type="text" disabled="disabled" name="created_by" value="admin">
<input type="submit">
</form>

так есть ли способ избавиться от значения элементов disables? (потому что есть много полей и отключенных элементов, поэтому я не хочу обрезать их вручную)

спасибо!

Ответы [ 2 ]

4 голосов
/ 11 августа 2011

Это какой-то хак. Мы получаем все элементы и перебираем их. Когда мы видим, что элемент отключен, мы можем пропустить.

$somearray = array();
$elements = $form->getElements();
foreach ($elements as $key => $element) {
    //echo $key;
    if( $element->disabled ) {
        continue;
    }
    $somearray[$key] = $element->getValue();
}

Надеюсь, это поможет, или вы можете взломать его;).

2 голосов
/ 17 августа 2011

Похоже, что это не ошибка, а принятый рабочий процесс для проверки форм. смотри это: http://framework.zend.com/issues/browse/ZF-6909

похоже, что принятое решение / хитрость заключается в использовании

$form->isValidPartial($this->getRequest()->getPost())

вместо

$form->isValid($this->getRequest()->getPost())

isValidPartial проверяет только те поля формы, которые присутствуют в записи. отключенные элементы не должны заканчиваться публикацией.

...