Cara membuat formulir GET


10

Misalnya formulir filter pada area admin yang terbaik adalah formulir GET, dengan cara itu dapat bookmark dan dapat dipertahankan di seluruh halaman halaman.

Bagaimana cara terbaik menggunakan form_api untuk formulir seperti itu? Apakah kait _validate dikirimkan? Bisakah kait _submit dihilangkan?

Misalnya filter yang terpapar tampilan bekerja dengan cara ini; Tetapi kode dalam menangani penanganan ini berbelit-belit dan kompleks, terlalu rumit untuk digunakan sebagai contoh yang baik ketika mengembangkan antarmuka khusus dengan bentuk filter sederhana.


Saya tidak mengerti pertanyaannya. Anda dapat membuat atau mengaitkan formulir apa pun untuk mengambil data GET, jika itu yang Anda maksud.
Letharion

Saya telah memperbarui pertanyaan dengan referensi ke sebuah contoh.
berkelanjutan

Jawaban:


11

Gunakan parameter #method dari formulir seperti ini:

<?php
  $form['#method'] = 'get';
?>

Tentu. Itu adalah satu bagian. Tapi bagaimana dengan validasi, kirim kail, dan sebagainya. Apakah set?
Berkel

2
Metode formulir harus diatur agar dikirim untuk itu mengirimkan dan memvalidasi fungsi yang dipanggil secara implisit.
Lester Peabody

Terkait: form_datakunci always_processdan methodjuga dapat diatur dalam definisi bentuk yang menghasilkan valid + proses kait sedang dijalankan. Tapi saya tidak dapat menemukan contoh penggunaan untuk ini dan saya masih berakhir dengan form_stateberisi methodset kunci post!
artfulrobot

4

Kalau-kalau ada yang tersandung pada pertanyaan ini, ini adalah kehidupan nyata yang lebih lengkap, namun sangat sederhana :)

Anda akan ingin menentukan formulir

function YOURMODULE_search_form($form, &$form_state) {
  $form['#method'] = 'get';
  $form['#action'] = '/search';
  $form['#attributes'] = array('class' => array('mymod-search'));
  $form['search'] = array(
    '#type' => 'textfield',
    '#size' => 20,
  );
  return $form;
}

dan kemudian Anda bisa menggunakannya

$searchform = drupal_get_form('YOURMODULE_search_form');
$output .= drupal_render($searchform);

Baris terakhir bisa berupa blok ['konten'] atau apa pun yang Anda butuhkan.


Untuk formulir pencarian, Anda mungkin ingin juga memasukkan $form_state['redirect'] = false;pengatur pengiriman untuk menonaktifkan pengalihan setelah formulir dikirimkan.
Ali Gangji
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.