0

Drupal Forms API には、選択ボックスを生成するためのオプションがあります。

ただし、この例には静的な情報が含まれています。「Drupal」の方法で動的選択リストを生成したいと思います。

コード例は次のとおりです。

   $form['selected'] = array(
   '#type' => 'select',
   '#title' => t('Selected'),
   '#options' => array(
      0 => t('No'),
     1 => t('Yes'),
   ),
   '#default_value' => $category['selected'],
   '#description' => t('Set this to <em>Yes</em> if you would like this category to be selected by default.'),
   );

#options の下の配列を動的にしたい - この前に何かを生成し、それを変数に渡して配列に入れる必要がありますか? このコードの構造を保持し、動的ソリューションの方法を挿入する方法がよくわかりません。

4

2 に答える 2

2

はい、次のように $form['selected'] 配列定義の前に options 配列を動的に生成する必要があります。

$myOptionsArray = myOptionsCallback($param1, $param2);
$form['selected'] = array(
    '#type' => 'select',
    '#title' => t('Selected'),
    '#options' => $myOptionsArray,
    '#default_value' => $category['selected'],
    '#description' => t('Set this to <em>Yes</em> if you would like this category to be selected by default.'),
);
于 2013-08-11T22:37:47.380 に答える
1

次のように実行できます。

'#options' => custom_function_for_options($key)

次に custom_function_for_options() を次のように定義します。

function custom_function_for_options($key){
$options = array(
    'Key Value 1' => array(
        'red' => 'Red',
        'green' => 'Green',
        'blue' => 'Blue'
    ),
    'Key Value 2' => array(
        'paris' => 'Paris, France',
        'tokyo' => 'Tokyo, Japan',
        'newyork' => 'New York, US'
    ),
    'Key Value 3' => array(
        'dog' => 'Dog',
        'cat' => 'Cat',
        'bird' => 'Bird'
    ),
);

    return $options;

}

$key は、どの $options が一連の値を返すかに基づいています。

于 2014-03-18T07:47:49.570 に答える