Drupal 6 $ key => $ value表单#options数组使用while循环构建,其中$ key = $ value

时间:2013-02-16 03:15:12

标签: php forms drupal drupal-6

我正在尝试构建一个$ key =>的数组使用while循环的$ value,其中$ 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. 从复选框和select中提取值的正确方法是什么,所以我得到一个字符串而不是一个有序数字? (例如,form_values ['value'] ['select_name'],form_values ['value'] ['checkboxes_name'],以便首先返回选定的项目'apple',第二个给出选中的项'apple'。)...我喜欢苹果。

1 个答案:

答案 0 :(得分:2)

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

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 =>值对而不是键数组=>每个项目的价值对。
  3. 单个复选框项目具有值,您可以将复选框的值设置为与显示的值相同。