Разница между $ form_state ['values'] и $ form_state ['input']


24

Может кто-нибудь сказать, пожалуйста, разницу между этими двумя переменными?

$form_state['values']
$form_state['input']

При желании некоторые примеры действий, с которыми они используются. Меня особенно интересует использование с ajax в форме drupal. Какие из них я должен использовать в обратном вызове ajax, чтобы получить входные значения из формы?

Ответы:


27

Принципиальное отличие здесь заключается в том, что в большинстве случаев вы должны использовать $ form_state ['values']; поскольку данные в массиве $ form_state ['input'] являются необработанными и не проверенными.

$ form_state ['input'] полезен для многошаговых форм, если вы знакомы с тем, как безопасно обрабатывать необработанный ввод .... Смотрите form_builder для получения дополнительной информации ...


1

Если вы не знаете, что делаете, вы $form_state['values']обрабатываете значения формы. $form_state['input']это необработанные данные. Смотрите код для form_builder: https: //api.drupal.org/api ....


0

В 99,9% случаев $form_state['values']и $form_state['input']идентичны.

Но - остерегайтесь части 1%, особенно при использовании поля date_popup , так как его входные данные хранятся во «input», но НЕ в массиве «values».


0

$form_state['values']следует использовать в большинстве случаев, поскольку $form_state['input']содержат необработанное и недействительное значение. Также в $form_state['values']значения по умолчанию передаются, когда отправка формы не удается, но в случае $form_state['input']NULL передается.


-4

В функции drupal_form_submit вы можете увидеть следующий код:

// Populate $form_state['input'] with the submitted values before retrieving
// the form, to be consistent with what drupal_build_form() does for
// non-programmatic submissions (form builder functions may expect it to be
// there).
$form_state['input'] = $form_state['values'];

Так что это точно так же.


4
Выше функция используется для программной отправки формы ... Она не отвечает на вопрос ОП ..
Анил Сагар
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.