Sự khác biệt giữa $ form_state ['value'] và $ form_state ['input']


24

Ai đó có thể vui lòng cho tôi biết sự khác biệt giữa hai biến này?

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

Tùy chọn một số ví dụ về hành động mà chúng được sử dụng với. Tôi đang tự hỏi đặc biệt là về việc sử dụng với ajax ở dạng drupal. Tôi nên sử dụng cách nào trong số này trong cuộc gọi lại ajax để nhận các giá trị đầu vào từ biểu mẫu?

Câu trả lời:


27

Sự khác biệt quan trọng ở đây là trong hầu hết các trường hợp, bạn nên sử dụng $ form_state ['value']; vì dữ liệu trên mảng $ form_state ['input'] là thô và không có giá trị.

$ form_state ['input'] hữu ích cho các biểu mẫu nhiều bước, giả sử bạn đã quen với cách xử lý an toàn đầu vào thô .... Xem form_builder để biết thêm thông tin ...


1

Trừ khi bạn biết những gì bạn đang làm, còn bạn $form_state['values']là các giá trị biểu mẫu được xử lý. $form_state['input']là dữ liệu thô. Xem mã cho form_builder: https: //api.drupal.org/api ....


0

Trong 99,9% trường hợp, $form_state['values']$form_state['input']giống hệt nhau.

Nhưng - hãy cẩn thận với một phần của 1%, đặc biệt là khi sử dụng trường date_popup , vì đầu vào của nó được lưu trữ trong 'đầu vào', nhưng KHÔNG trong mảng 'giá trị'.


0

$form_state['values']nên được sử dụng trong hầu hết các trường hợp như $form_state['input']giữ giá trị thô và vô hiệu. Ngoài ra trong $form_state['values']các giá trị mặc định được thông qua khi gửi biểu mẫu không thành công, nhưng trong trường hợp $form_state['input']NULL được thông qua.


-4

Trong hàm drupal_form_submit , bạn có thể thấy đoạn mã sau:

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

Vì vậy, nó là chính xác như nhau.


4
Hàm trên được sử dụng để gửi biểu mẫu theo chương trình ... Nó không trả lời OP Câu hỏi ..
Anil Sagar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.