【发布时间】:2012-02-27 03:42:37
【问题描述】:
我需要的是一个默认为空白的下拉菜单。它有一个“-create new client-”字段,然后是一个客户列表。这是菜单字段的代码:
$form['client']['existing'] = array(
'#title' => t('Client'),
'#type' => 'select',
'#options' => array('add' => t('add new client'),$fullName),
'#empty_option' => '',
'#description' => t('Select an existing Client or choose -create new client-'),
);
这是我用来填充 $fullName 的函数:
function myForm_get_names()
{
$query = db_select('client', 'c');
$query->fields('c', array('cid','fname','lname'));
$fullName = array();
$result = $query->execute();
foreach ($result as $r)
{
$fullName[$r->cid] = $r->fname . " " . $r->lname;
}
return $fullName;
}
这是 $fullName 的打印输出
array (
1 => 'tim arthur',
2 => 'val brant',
)
一切都很好。唯一的问题是它在 -add new client- 之后插入了一个数字。所以它看起来像:
Client:
blank
-add new client-
0
tim arthur
val brant
我打印出我的选项字段的值:
'#options' => array(
'add' => 'add new client',
0 => array(
1 => 'tim arthur',
2 => 'val brant',
),
),
如果我给 -add new client- 一个数值,这个数字会增加。例如,如果我这样做:
'#options' => array ('5' => '-add new client-', $fullNames),
然后0变成6。
关于如何让我的数组不被嵌套的任何想法。我也试过了,但报错:
'#options' => array (
'add' => '-add new client-',
array_keys($fullNames) => array_values($fullNames)),
【问题讨论】: