Drupal 7 Drupal 7-从表单API中的DB填充下拉选择

Drupal 7 Drupal 7-从表单API中的DB填充下拉选择,drupal-7,form-api,Drupal 7,Form Api,我对PHP还是新手,甚至对Drupal的FormAPI也是新手。我只是尝试从数据库中填充一个下拉选择。我认为这个问题源于我对如何使用多维数组缺乏深入的理解。我们衷心感谢您的帮助 我的代码当前为: //Query DB for Rows $query = db_select('hp_education_years'); $query->fields('hp_education_years', array('id', 'years',)); $query->

我对PHP还是新手,甚至对Drupal的FormAPI也是新手。我只是尝试从数据库中填充一个下拉选择。我认为这个问题源于我对如何使用多维数组缺乏深入的理解。我们衷心感谢您的帮助

我的代码当前为:

    //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只是比我想要的高了一个级别?这有意义吗

非常感谢。试着换衣服吧

//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;
}