Seçim listesi varsayılan değerini ayarla [kapalı]


16

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.


1
Ben de aynı sorunla karşılaştım. Sorun ben drupal_get_form () kullanarak formu oluşturma değildi, ancak kullanım durumu nedeniyle başka bir yol oldu.
user1750

Aynı soru ile tanıştım !!!! bana kim yardımcı olabilir?
bluesky_still

1
500 bir '500' olmalıdır, dize bir tamsayı değil.
saadlulu

Yanıtlar:


3

Bu problemi hiç görmedim. Bu varsayılan değer çalışmalıdır. Anahtar bir dize yapmak ve bir dize #default_valueolarak ayarlamak deneyin söyleyebilirim . #optionsDizi geçirilerek olabilir array_merge , böylece anahtar tamsayıdır yeniden anahtarlama, bir yerde. 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_mergegeçirmek, bu tamsayı anahtarlarını sıralı olacak şekilde yeniden düzenleyebilir:

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

Bu durumda, 500anahtar basitçe mevcut değildir. Bunun nedeni array_merge, tamsayı anahtarlarını korumaktan hoşlanmamasıdır, 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 aşağıdakileri ayarlayabilirsiniz #default_value:

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

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


3

Kodunuzun çalışması gerekir, genellikle anahtar değerini varsayılan değer olarak kullanın, eğer çalışmazsa dizeyi anahtar olarak yapın ve varsayılan değer olarak kullanın.


2

Tamsayı yerine dize kullanmayı denediniz mi?

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

Belki de 'und'anahtar eklemeyi denemeye değer .


1

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


Bu yapılırsa, teknik olarak sadece $ string [500] değerini ('string' olan 'dize') geçirecektir.
jordojuice

1
$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.


0

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',
        );  

-1

Aynı sorunla karşılaştım ve varsayılan değer olmasını istediğim dizinin dizinini vermeye çalıştım ve çalıştı. Cevabım Ashok KS'ye benziyor ama ikinci çizgisini anlayamadım.


-1

düzeltildi, önce o $ seçenek dizisinin varsayılan değerini ayarlamalıyız, en son eklersek dizi anahtarı değişti [1] => science, [2] => drama, sağ [192] => science, [231 ] => dram :-)


-1

Deneyin:

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

Benim için iyi iş.


-2

#default_valueOlarak formda 's argümanlar sahip olmalıdır #value.

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

-4

Sadece kullan

$form['price']['min']['#default_value'] = 2 

Bu, varsayılan değerin 2eme seçeneğini alacağı anlamına gelir


-5

ÇÖZÜM: form_select_options işlevinin hiç işlemediğini anlayın#default_value . Ben de kullandım #value property:

$form['price']['min']['#value'] = isset($_REQUEST['price']['min']) ? $_REQUEST['price']['min'] : $my_default_value;

2
Seçme seçeneklerinin varsayılan değeri vardır. Ayrıca #valueparametrenin ayarlanması kullanıcının değeri değiştirmesini imkansız hale getirecektir.
googletorp

1
Koda bakın, #value değerini #value değerinde yalnızca #value değerinde herhangi bir değer yoksa ayarlayın.
breethe

Her zaman $_REQUEST['price']['min']veya değerini #değer olarak ayarlarsınız $my_default_value. #Value içine ne koyarsanız koyun, kullanıcının girdisi ne olursa olsun alanın değeri olacaktır.
googletorp

Kullanıcı bir değer girerse, bu değer GET ($ _REQUEST ['price'] ['min']) yoluyla gönderilir. Bu nedenle, kullanıcı giriş değeri girerse, kullanıcı girişine # değer ayarlarsam, aksi takdirde #value = $ my_default_value
breethe

Sorun bu. Kullanıcılar seçimi kullanabilir, ancak seçtikleri önemli değildir, sonuç aynı olacaktır.
googletorp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.