Różnica między $ form_state ['wartości'] a $ form_state ['input']


24

Czy ktoś może mi powiedzieć różnicę między tymi dwiema zmiennymi?

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

Opcjonalnie jakiś przykład akcji, z którą są używane. Zastanawiam się szczególnie nad używaniem z ajaxem w formie drupal. Które z nich należy użyć w wywołaniu zwrotnym ajax, aby uzyskać wartości wejściowe z formularza?

Odpowiedzi:


27

Zasadnicza różnica polega na tym, że w większości przypadków powinieneś używać $ form_state ['wartości']; ponieważ dane w tablicy $ form_state ['input'] są surowe i nieważne.

$ form_state ['input'] jest przydatny w formularzach wieloetapowych, zakładając, że wiesz, jak bezpiecznie obsługiwać surowe dane wejściowe .... Zobacz form_builder, aby uzyskać więcej informacji ...



0

W 99,9% przypadków, $form_state['values']i $form_state['input']są identyczne.

Ale - uważaj na część 1%, szczególnie gdy używasz pola date_popup , ponieważ jego dane wejściowe są przechowywane w 'input', ale NIE w tablicy 'values'.


0

$form_state['values']powinny być używane w większości przypadków jako $form_state['input']surowe i unieważnione wartości. Również w $form_state['values']wartościach domyślnych są przekazywane, gdy przesyłanie formularza nie powiedzie się, ale w przypadku $form_state['input']przekazania wartości NULL.


-4

W funkcji drupal_form_submit możesz zobaczyć następujący kod:

// 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'];

Więc jest dokładnie tak samo.


4
Powyższa funkcja służy do programowego przesyłania formularza ... Nie odpowiada OP Pytanie ..
Anil Sagar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.