我在使用PHP填充select元素时遇到了麻烦。目前,我创建了一个包含从数据库中提取的信息的数组。这用于编辑或插入日志中的条目以保存记录。
代码中使用的变量处理客户编号和客户名称,如果这有助于提供任何额外的相关性。
下面列出的方法适用于不是新条目(编辑现有条目)的情况,但在新条目($ 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在代码中的其他位置定义,并且是正在编辑的记录。如果是新记录,则所有值都设置为''。
这有帮助吗?
答案 0 :(得分:0)
看起来你的queryHashArray
函数在ID为0时不返回数组。
确保ID或$ _GET [&#39; ID&#39;]变量不会覆盖您函数中使用的变量。
运行该功能后立即尝试print_r($mons)
。这将显示函数返回的内容。