選択リストのデフォルト値を設定する[終了]


16

オプション付きの選択リストがあります:

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

私はそれを500にデフォルト値に設定しようとしています:

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

しかし、これは機能しません。


1
私は同じ問題に遭遇しました。問題は、私がdrupal_get_form()を使用してフォームをレンダリングするのではなく、ユースケースのために他の方法でレンダリングすることでした。
user1750

私は同じ質問に答えました!!!!誰が私を助けることができますか?
bluesky_still

1
500は整数ではなく、「500」でなければなりません。
saadlulu

回答:


3

コードは機能するはずです。機能しない場合、通常はキー値をデフォルト値として使用し、文字列をキーとして使用し、デフォルト値として使用します。


2

私はこの問題を見たことがない。そのデフォルト値は機能するはずです。キーを文字列にし#default_valueて、文字列として設定してみてください。#options配列を通過することができるarray_merge 、したがって整数キーを再入力、どこ。キーが文字列である場合、それは起こりません。現在、配列は次のようになっています。

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

しかし、その配列を渡すことで、array_mergeこれらの整数キーを順番に並べ替えることができます。

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

その場合、500キーは存在しません。これは、array_merge整数キーを保持することを好まないためですが、それを防ぐために文字列を使用できます。したがって、配列は次のようになります。

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

次に、次を設定できます#default_value

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

そうでなければ、がdefault_valueオーバーライドされる可能性のある他の場所はありますか?


2

整数の代わりに文字列を使用してみましたか?

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

'und'キーを追加してみる価値もあります。


1

配列$ optionsのキーを使用してデフォルト値を定義しようとしましたか?
$form['price']['min']['#default_value'] = $options[500];


それが行われた場合、技術的には$ options [500]の値((string) '500')を渡すだけです。
ヨルドジュース

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

選択リストでデフォルト値を設定するには、#default_valueパラメーターを使用します。選択リストのdefault_value属性の値は、選択リスト配列のキーになります。


0

次のコードは、デフォルト値が500のフィールドを表示します。

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

-1

私は同じ問題に直面し、デフォルト値にしたい配列のインデックスを与えようとしましたが、うまくいきました。私の答えはアショクKSに似ていますが、彼の2行目は理解できませんでした。


-1

修正、その$ option配列の最初にデフォルト値を設定する必要があります。最後に追加した場合、配列キーは[1] => science、[2] => drama、右は[192] => science、[231 ] =>ドラマ:-)


-1

試してください:

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

それは私にとって良い仕事です。


-2

#default_value形式の引数が必要#valueです。

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

-4

ただ使う

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

つまり、デフォルト値には2emeオプションが使用されます


-5

解決策:form_select_optionsがまったく処理しないことを理解してください#default_value。だから私は使用しました#value property

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

2
選択オプションにはデフォルト値があります。また、#valueパラメータを設定すると、ユーザーが値を変更できなくなります。
googletorp

1
コードを見て、#valueに値がない場合にのみ#valueをdefault_valueに設定します。
ブリーズ

あなたはいつも#VALUEに値を設定し、いずれか$_REQUEST['price']['min']または$my_default_value。#valueに入力するものはすべて、ユーザーが入力した内容に関係なく、フィールドの値になります。
googletorp

ユーザーが何らかの値を入力すると、この値はGETを介して送信されます($ _REQUEST ['price'] ['min'])。したがって、ユーザーの入力が、私は、ユーザー入力、そうでない場合は#VALUE = $ my_default_valueに#VALUEを設定した値ならば
breethe

それが問題だ。ユーザーはselectを使用できますが、何を選択しても、結果は同じになります。
googletorp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.