在Drupal-form中添加多个复选框

时间:2011-12-22 10:07:30

标签: php forms drupal checkbox drupal-7

我想在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;
}

1 个答案:

答案 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会将其视为属性,而不是需要呈现的元素。