我在使用 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 在代码的其他地方定义,是正在编辑的记录。如果是新记录,则所有值都设置为''。
这有帮助吗?