2011-12-22 19 views
1

D7フォームにいくつかのチェックボックスを追加したいと思います。何らかの理由で、以下のスニペットが機能していません。どのようなアイデアか、またはアドバイスを適切に行う方法複数のチェックボックスをDrupalフォームに追加する

$options = array('A', 'B', 'C'); 
foreach ($themas as $thema) { 

     // Initialize array 
     $ra = array(); 

     // Fill up the array with different keys 
     $key = $prefix.'_thema_'.$thema->tid.'_fiche'; 
     $ra[$key]['#type'] = 'checkboxes'; 
     $ra[$key]['#name'] = $prefix.'_thema_'.$thema->tid.'_opties'; 
     $ra[$key]['#options'] = $options; 
} 

答えて

3

は、私はあなたがループのすべてのステップで$raを再初期化しているので、それが唯一のこれまでのチェックボックスの1セットが含まれていますので、それはだと思います。ループの外でそれを初期化してみてください。

$options = array('A', 'B', 'C'); 

// Initialize array 
$ra = array(); 

foreach ($themas as $thema) { 
    // Fill up the array with different keys 
    $key = $prefix.'_thema_'.$thema->tid.'_fiche'; 
    $ra[$key]['#type'] = 'checkboxes'; 
    $ra[$key]['#name'] = $prefix.'_thema_'.$thema->tid.'_opties'; 
    $ra[$key]['#options'] = $options; 
} 

$form['some_key'] = $ra; 

また、あなたの$prefix文字列が#シンボルやDrupalのに起動しないことを確認してプロパティではなく、レンダリングする必要の要素を検討します。

+0

これは実際に初期化の問題でした。値 '#options'は毎回上書きされます。ありがとう – Michiel

関連する問題