Bagaimana cara mengubah penangan pengiriman formulir?


16

Untuk beberapa alasan saya perlu mengganti beberapa karakter (jika ada) di setiap bidang teks dalam bentuk apa pun tepat sebelum disimpan dalam database. Dengan kata lain saya memerlukan sebuah kait di mana saya bisa mendapatkan semua data yang dikirimkan dan mengganti karakter mereka.
Saya menemukan solusi ini:

function hook_form_alter($form, $form_state, $form_id) {
  $form['#submit'] = 'my_custom_submission_function';
}

Tapi ini bukan ide yang baik karena saya harus mengurus sisa pengajuan kemajuan juga. Saya hanya perlu mengganti beberapa karakter. Apakah ada kaitan untuk melakukan ini? Apa solusinya?

Jawaban:


22

$form['#submit']menyimpan berbagai form handler penangan. Dengan kode yang Anda berikan, Anda menimpanya dengan menambahkan kode Anda sendiri. Untuk mendapatkan hasil yang Anda inginkan, Anda harus menambahkan kiriman Anda sebagai elemen pertama dalam array seperti ini:

array_unshift($form['#submit'], 'mymodule_custom_submission');

Mendapatkan nilai yang tepat dalam bentuk yang tepat dan mengganti beberapa karakter mungkin merupakan masalah yang lebih besar. Anda mungkin ingin mempersempit formulir / bidang yang perlu Anda ubah untuk memastikan Anda tidak merusak apa pun.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.