3

我对 PHP 还是很陌生,甚至对 Drupal 的 Form API 也很陌生。我只是想从数据库中填充下拉选择。我认为这个问题源于我对如何使用多维数组缺乏深入的了解。真诚感谢任何帮助。

我的代码目前是:

    //Query DB for Rows
    $query = db_select('hp_education_years');
    $query->fields('hp_education_years', array('id', 'years',));
    $query->orderBy('years', 'ASC');
    $results = $query->execute();

    //define rows
    $options = array();
    foreach ($results as $result) {
        $options[$result->id] = array(
            $result->years,
        );
    }
    $form['education']['year'] = array(
        '#type' => 'select',
        '#title' => t('Year'),
        '#options' => $options,
        '#states' => array(
            'visible' => array(
                ':input[name="data_set"]' => array('value' => 'education'),
            ),
        ),
    );

这会返回一个填充列表,但会以粗体显示年份 ID 以及年份(例如 2008 年)。

如何让下拉菜单仅显示年份,而不是粗体显示年份 ID,然后显示年份。似乎 $option 只是比我想要的高一个级别?如果这有意义吗?

提前谢谢了。

4

1 回答 1

6

尝试改变

//define rows
$options = array();
foreach ($results as $result) {
    $options[$result->id] = array(
        $result->years,
    );
}

//define rows
$options = array();
foreach ($results as $result) {
    $options[$result->id] = $result->years;
}

如果您查看Drupal 的 Form API中的示例,您会发现 Options 值应该只是字符串值而不是数组。

于 2012-08-06T13:58:30.300 回答