我想在D7表单中添加一些复选框。出于某种原因,下面的代码段不起作用。知道为什么或任何建议如何正确地做到这一点?
$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;
}
答案 0 :(得分:3)
我认为这是因为你在循环的每一步重新初始化$ra
所以它只会包含一组复选框。尝试在循环之外初始化它:
$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会将其视为属性,而不是需要呈现的元素。