我还是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只比我想要的高一级?如果这有意义吗?
非常感谢提前。
答案 0 :(得分: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's Form API中的示例,您会看到Options值应该只是字符串值而不是数组。