$ form_state ['values']和$ form_state ['input']之间的区别


24

有人可以告诉我这两个变量之间的区别吗?

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

(可选)与它们一起使用的一些动作示例。我特别想知道以drupal形式与ajax一起使用。我应该在ajax回调中使用以下哪项来从表单获取输入值?

Answers:


27

这里的关键区别在于,在大多数情况下,您应该使用$ form_state ['values'];。因为$ form_state ['input']数组上的数据是原始数据,并且未经验证。

$ form_state ['input']对于多步骤表单很有用,假设您熟悉如何安全地处理原始输入。...有关更多信息,请参见form_builder



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
上面的函数用于以编程方式提交表单...它没有回答OP问题..
Anil Sagar 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.