web-gelistirme-sc.com

Seçim listesi varsayılan değerini ayarlama

Seçenekleri olan bir liste seçtim:

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

Ben varsayılan değerini 500 olarak ayarlamaya çalışıyorum:

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

Ama bu işe yaramıyor.

16
breethe

Bu problemi hiç görmedim. Bu varsayılan değer çalışmalıdır. Anahtar bir dize yapmak deneyin ve #default_value Bir dize olarak ayarlamak söyleyebilirim. #options Dizisi array_merge İçinden bir yere geçiriliyor, bu nedenle tamsayı anahtarları yeniden anahtarlanıyor. Anahtarlar dize ise, bu olmamalıdır. Şu anda diziniz şu şekilde görünüyor:

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

Ancak bu diziyi array_merge Üzerinden geçirmek, bu tamsayı anahtarlarını sıralı olacak şekilde yeniden düzenleyebilir:

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

Bu durumda, 500 Tuşu mevcut değildir. Çünkü array_merge Tamsayı anahtarlarını korumak istemez, ancak bunu önlemek için dizeleri kullanabilirsiniz. Yani, dizininizin daha çok benzemesi gerektiğini düşünüyorum:

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

Ardından #default_value Hesabınızı ayarlayabilirsiniz:

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

Aksi takdirde, default_value Geçersiz kılınabilecek başka bir yer var mı?

3
jordojuice

Kodunuz işe yaramalıdır, genellikle anahtar değeri varsayılan değer olarak kullanın, eğer çalışmazsa dizeyi anahtar olarak yapın ve varsayılan değer olarak kullanın.

3
Ashok KS

Tamsayı yerine dize kullanmayı denediniz mi?

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

Belki de 'und' tuşu.

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

Seçim listesinde varsayılan değeri ayarlamak için #default_value parametresini kullanıyoruz. Seçim listesinin default_value özniteliğinin değeri, seçim listesi dizisinin anahtarı olacaktır.

1
Nitesh Sethia

Varsayılan değeri tanımlamak için dizi $ seçeneklerindeki anahtarı kullanmayı denediniz mi?
$form['price']['min']['#default_value'] = $options[500];

1
JurgenR

Aşağıdaki kod, varsayılan değeri 500 olan alanı gösterecektir.

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