it-swarm-id.com

Setel daftar pilih nilai default

Saya telah memilih daftar dengan opsi:

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 

Saya mencoba untuk menetapkan nilai default ke 500:

$form['price']['min']['#options'] = $options; 
$form['price']['min']['#default_value'] = 500;

Tapi ini tidak berhasil.

16
breethe

Saya belum pernah melihat masalah ini. Nilai default itu seharusnya berfungsi. Saya akan mengatakan mencoba membuat kunci menjadi string dan set #default_value Sebagai string. Array #options Mungkin sedang melewati array_merge Di suatu tempat, sehingga merekam kunci integer. Jika kunci adalah string maka itu seharusnya tidak terjadi. Saat ini, array Anda terlihat seperti ini:

$options = array(
  0 => '0',
  500 => '500',
  1000 => '1000',
);

Tetapi dengan melewatkan array itu melalui array_merge Dapat mengatur ulang kunci integer tersebut menjadi berurutan:

$options = array(
  0 => '0',
  1 => '500',
  2 => '1000',
);

Jika itu terjadi maka kunci 500 Tidak ada. Ini karena array_merge Tidak suka mempertahankan kunci integer, tetapi Anda dapat menggunakan string untuk mencegahnya. Jadi, saya pikir array Anda akan terlihat seperti ini:

$options = array(
  '0' => '0',
  '500' => '500',
  '1000' => '1000',
);

Kemudian Anda dapat mengatur #default_value Anda:

$form['price']['min']['#default_value'] = '500';

Kalau tidak, apakah ada tempat lain di mana default_value Mungkin ditimpa?

3
jordojuice

Kode Anda harus berfungsi, umumnya menggunakan nilai kunci sebagai nilai default, jika tidak berfungsi menjadikan string sebagai kunci dan menggunakannya sebagai nilai default.

3
Ashok KS

Apakah Anda mencoba menggunakan string sebagai ganti bilangan bulat?

$form['price']['min']['#default_value'] = "500"

Mungkin juga patut dicoba menambahkan 'und' kunci.

2
silkAdmin
$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
        );

Untuk menetapkan nilai default dalam daftar pilih, kami menggunakan parameter #default_value. Nilai atribut default_value daftar pilih akan menjadi kunci dari array daftar pilih.

1
Nitesh Sethia

Apakah Anda mencoba menggunakan kunci dari array $ options untuk menentukan nilai default?
$form['price']['min']['#default_value'] = $options[500];

1
JurgenR

Kode berikut akan menampilkan bidang dengan nilai defaultnya adalah 500.

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
          '#title' => 'Price',
        );  
0
Aswini K