如何将第一个下拉值设为无

Posted

技术标签:

【中文标题】如何将第一个下拉值设为无【英文标题】:How to get the first drop down value as none 【发布时间】:2018-08-25 13:56:54 【问题描述】:

我从以下代码中获得了所需的选项,但我需要添加一个空选项作为返回数组的第一个值 '' => 'none',,然后是其余值。

function dropdown() 
  return db_select('node', 'n')
    ->condition('n.type', 'abc')
    ->condition('n.status', 1)
    ->fields('n', array('nid', 'title'))
    ->orderBy('n.title', 'ASC')
    ->execute()
    ->fetchAllKeyed();

然而,这仅给出数据库中的值。

【问题讨论】:

这不是主要与视图相关吗?模型层获取的数据不要乱用,在模板/视图中添加空的option即可。 【参考方案1】:

您可以在返回数据之前添加条目:

function dropdown() 
  $data = db_select('node', 'n')
    ->condition('n.type', 'abc')
    ->condition('n.status', 1)
    ->fields('n', array('nid', 'title'))
    ->orderBy('n.title', 'ASC')
    ->execute()
    ->fetchAllKeyed();
  return ['' => 'none'] + $data ;

可能的输出:

array(463) 
  ['']=>
  string(4) "none"
  [367]=>
  string(7) "Title 1"
  [63]=>
  string(7) "Title 2"
  ...

如果没有适合您的条件的节点,它将返回:

array(1) 
  [""]=>
  string(4) "none"

【讨论】:

以上是关于如何将第一个下拉值设为无的主要内容,如果未能解决你的问题,请参考以下文章

如何在 bigquery 中使用 rowid 按日期获取数据集的第一个值,并将给定日期的所有其他值设为 0

将字典键设为行,将字典值设为列,一个值作为列名,一个作为列值

使用 jquery 将行值设为其他文本

使用 jQuery 将复选框的值设为 1/0

重塑数据框以按组将值设为列[重复]

指针行为将值设为 1