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

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

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

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

22 голоса | спросил hajnyon 6 Maypm14 2014, 19:07:10

5 ответов


25

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

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

ответил Anil Sagar 6 Maypm14 2014, 19:17:45
0

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

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

ответил derrekc 6 FebruaryEurope/MoscowbFri, 06 Feb 2015 18:01:49 +0300000000pmFri, 06 Feb 2015 18:01:49 +030015 2015, 18:01:49
0

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

ответил anil kumar 12 AM000000100000000931 2014, 10:05:09
0

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

ответил Adi 2 +03002015-10-02T09:33:47+03:00312015bEurope/MoscowFri, 02 Oct 2015 09:33:47 +0300 2015, 09:33:47
-3

В функции 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'];

Итак, это точно то же самое.

ответил Lovau 6 Maypm14 2014, 19:11:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132