【问题标题】:Drupal 7: unwanted character in select dropdownDrupal 7:选择下拉列表中不需要的字符
【发布时间】: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)), 

【问题讨论】:

    标签: php forms drupal option


    【解决方案1】:
    #options => array_merge(array('add' => '-add new client-'),$fullNames)
    

    【讨论】:

    • 谢谢。这解决了它!我会评价你的回答,但我没有足够的代表。
    • 它确实显示正确,但它没有携带我的客户 ID 作为值。它返回这个数组作为我的选项: array ( '' => '', 'add' => '-add new client-', 0 => 'val brant', 1 => 'tim arthur', 2 => ' bob adams', ),但我已经按姓氏对它们进行了排序,所以它的值应该是 2,1,3
    【解决方案2】:

    原来解决方案非常简单。所以不是

    '#options' => array('add' => t('add new client'),$fullName),
    

    只是做

    '#options' => $fullName,
    

    然后在我的 myForm_get_names() 函数中而不是

    $fullName = array();
    

    $fullName = array('add' => '-add new client-');
    

    无需更改任何其他内容。 h0tw1r3 的 array_merge 想法很狡猾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多