-1

我正在尝试使用 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”。)...我喜欢苹果。
4

1 回答 1

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 => value 对而不是 key => value 对的数组。
  3. 各个复选框项都有值,您可以将复选框的值设置为与显示的值相同。
于 2013-02-16T09:17:50.447 回答