Perbedaan antara $ form_state ['values'] dan $ form_state ['input']

24

Bisakah seseorang tolong beri tahu saya perbedaan antara kedua variabel ini?

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

Opsional beberapa contoh tindakan yang mereka gunakan. Saya bertanya-tanya terutama tentang penggunaan dengan ajax dalam bentuk drupal. Manakah dari ini yang harus saya gunakan dalam panggilan balik ajax untuk mendapatkan nilai input dari formulir?

hajnyon
sumber

Jawaban:

27

Perbedaan penting di sini adalah bahwa dalam kebanyakan kasus Anda harus menggunakan $ form_state ['values']; karena data pada array $ form_state ['input'] adalah mentah dan tidak divalidasi.

$ form_state ['input'] berguna untuk formulir multi-langkah, dengan asumsi Anda terbiasa dengan cara aman menangani input mentah .... Lihat form_builder untuk informasi lebih lanjut ...

Anil Sagar
sumber
1

Kecuali Anda tahu apa yang Anda lakukan, Anda $form_state['values']itu adalah nilai formulir yang diproses. $form_state['input']adalah data mentah. Lihat kode untuk form_builder: https: //api.drupal.org/api ....

Adi
sumber
0

Dalam 99,9% kasus, $form_state['values']dan $form_state['input']identik.

Tetapi - waspadalah terhadap sebagian dari 1%, terutama ketika menggunakan bidang date_popup , karena inputnya disimpan dalam 'input', tetapi BUKAN dalam array 'nilai'.

derrekc
sumber
0

$form_state['values']harus digunakan dalam sebagian besar kasus sebagai $form_state['input']memegang nilai mentah dan tidak valid. Juga di $form_state['values']standar nilai-nilai yang berlalu ketika penyerahan formulir gagal, tetapi dalam kasus $form_state['input']NULL dilewatkan.

anil kumar
sumber
-4

Dalam fungsi drupal_form_submit , Anda dapat melihat kode berikut:

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

Jadi persis sama.

Lovau
sumber
4
Fungsi di atas digunakan untuk mengirimkan formulir ... Tidak menjawab Pertanyaan OP ..
Anil Sagar