0

我在使用 PHP 填充选择元素时遇到了问题。目前,我使用从数据库中提取的信息创建了一个数组。这用于编辑或将条目插入日志以供我保存记录。

代码中使用的变量处理客户编号和客户名称,如果这有助于提供任何额外的相关性。

下面概述的方法在它不是新条目(编辑现有条目)的情况下非常有效,但在新条目(其中 $ID == 0)的情况下不会填充选项。

$ID = $_GET['ID'];
connectDB();
$mons = "SELECT * FROM mons ORDER BY mName ASC";
$mons = queryHashArray($mons);
disconnectDB();

<tr><td><select name="mID"> <?php
foreach($mons as $m) { 
  if($ID == 0) { ?>
      <option value="<?= $m['cusNum'] ?>"><?= $m['mName'] ?></option> <?php }
  else { ?>
      <option value="<?= $m['cusNum'] ?>" <?php if($record['mID'] == $m['cusNum']) echo "selected=\"selected\""; ?> ><?= $m['mName'] ?></option> <?php 
      } 
  }?> 
  </select></td>

任何帮助,将不胜感激。我在网上找不到对我的问题足够具体的示例。我希望这是我忽略的小而简单的事情。

更新:

以下是编辑现有条目和新条目的页面源。

现有条目:出于隐私考虑,选项文本已更改为“省略名称”。

<tr><td><select name="mID">         <option value="3" selected="selected" >Name Omitted</option>        <option value="0"  >Name Omitted</option>           <option value="0"  >Name Omitted</option>

新条目:

<tr><td><select name="mID"> <br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/folder/public_html/subfolder/file.php</b> on line <b>265</b><br />

</select></td>

$record 在代码的其他地方定义,是正在编辑的记录。如果是新记录,则所有值都设置为''。

这有帮助吗?

4

1 回答 1

0

当 ID 为 0 时,您的函数似乎queryHashArray没有返回数组。确保 ID 或 $_GET['ID'] 变量没有覆盖函数中使用的数组。

print_r($mons)运行该功能后立即尝试。这将向您展示函数返回的内容。

于 2014-07-03T17:17:40.433 回答