【问题标题】:Drupal 6 $key => $value form #options array built using while loop where $key = $valueDrupal 6 $key => $value form #options 使用while循环构建的数组 where $key = $value
【发布时间】:2013-02-16 03:15:11
【问题描述】:

我正在尝试使用 while 循环构建一个 $key => $values 数组,其中 $key 等于值,来自 db_query。我认为语法不正确

function _form(){

$person = db_query("SELECT name FROM {person}");                 
$columnValues = Array();

while ($row = db_fetch_array($person) ) {
  $columnValues[] = array($row['name']=> $row['name']);
}
.
.
.

我有几个问题。

  1. 我需要创建一个键来提取实际的“选择”菜单项值吗?
  2. 如果我需要创建一个键,有没有办法在 while 循环中为每个以相同值作为键的元素创建一个新数组(例如 apple => apple)
  3. 从复选框和选择中提取值的正确方法是什么,以便我得到一个字符串而不是有序数字? (例如 form_values['value']['select_name'] , form_values['value']['checkboxes_name'] 以便首先返回所选项目“apple”,第二个返回选中项目“apple”。)...我喜欢苹果。

【问题讨论】:

    标签: php forms drupal drupal-6


    【解决方案1】:

    您似乎在这里犯了一个错误-在键值对中,值不能是数组

    while ($row = db_fetch_array($person) ) {
       $columnValues[] = array($row['name']=> $row['name']);
    }
    

    应该是

    while ($row = db_fetch_array($person) ) {
       $columnValues[$row['name']] = $row['name'];
    }
    

    答案:

    1. 是的,您应该始终添加键值对 - 因为值是显示的内容,键是提交表单中提交的内容。
    2. 是的,上面解释了如何为每个项目创建 key => value 对,而不是 key => value 对的数组。
    3. 各个复选框项都有值,您可以将复选框的值设置为与显示的值相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 2017-02-01
      • 2013-03-23
      • 2015-10-12
      相关资源
      最近更新 更多