5

drupalの「 selectoption 」要素をフォームに出力しようとしています。drupal_render適用しないと思います。適用しない場合を除いて、すべて問題ありません。 問題はどこにありますか?誰もが私がこれを行うことができる方法を知っていますか?価値を受け入れますか?#default_value#default_value
#default_valuestring

これは私のコードの疑似です:

function test_menu(){
$items=array();

    $items['admin/config/regional/test']=array(
    'title' => 'test',
    'description' => t('test'),
    'page callback' =>'drupal_get_form',
    'page arguments' => array('test_function'),

);
$items[]=array();
return $items;
}


function test_function(){
 $header = array
  (
  'test1' => t('test1'),
  'test2'=> t('test2'),
  );
 $a=(1,2,3);
 $$options=array();
 foreach($a as $i=>$v)
  {
    $f['type'] = array(
   '#type' => 'select',
   '#options' => array(1,2,3,4),
   '#default_value'=>1,
    );
$options += array($name=>array( 'test1' => $v,
   'test2'=> drupal_render($f['type']) ,
  }
   $form['table'] = array
   (
   '#type' => 'tableselect',
   '#header' => $header,
   '#options' => $options,
   '#multiple' => FALSE
   //'#empty' => t('No users found'),
   );
   $form['submit'] = array
       (
   '#type' => 'submit',
   '#value' => t('Submit'),
    );
   return $form;
 }    

私はテスト しますtextfieldが、それも機能せず#default_value、drupal_renderで受け入れません

    $f['test3']=array(
    '#type'=>'textfield',
    '#title'=>'test3',
    '#default_value' =>'aaa',
);

これはdrupal_renderを使用しているためだと思います。誰かが解決策を持っていますか?

4

4 に答える 4

2

私も同じ問題を抱えてる。最後に、私は1つの方法を見つけました。あなたが言ったように、default_valueは機能しません。そのため、default_value を 0 に固定し、options 配列を変更して、デフォルト値を一番上に置きます。

于 2014-01-22T21:37:31.530 に答える
0

Drupal の Form API の例を見ると、#options設定がキーと値のペアの配列を使用していることがわかります。 では、文字列値ではなく、デフォルト値のキー#default_valueを指定する必要があります。

また、設定のドキュメント#optionsによると、#optionsは文字列値を期待しています。したがって、選択は次のようになります。

$f['type'] = array(
   '#type' => 'select',
   '#options' => drupal_map_assoc(array('1','2','3','4')),
   '#default_value'=> '1',
);
于 2012-07-19T12:10:22.167 に答える