我可能忽略了一些内容,但这是我编写的将打印HTML选择标记内容的代码。
<form action="submit.php" method="post">
<select name="List" id="List">
<?php PopulateBox(); ?>
</select>
</form>
然后在我的PHP文件中:
function PopulateBox()
{
//MySQL connection stuff up here
$result = mysqli_query($con, "SELECT ItemNo FROM Items");
while($row = mysqli_fetch_array($result))
{
echo "<option value='"" . $row['ItemNo'] . ">" . $row['ItemNo'] . "</option>";
}
}
该表中目前有10个项目,但输出仅在HTML选择框中生成5个项目。
为什么会发生这种情况?
编辑:我在打印时看到这个_r:
mysqli_result Object
(
[current_field] => 0
[field_count] => 1
[lengths] =>
[num_rows] => 10
[type] => 0
)
echo "<option value='"" . $row['ItemNo'] . ">" . $row['ItemNo'] . "</option>";
从这一行看,HTML输出中缺少一个结束引号。也许这会奏效:
echo "<option value='"" . $row['ItemNo'] . "'">" . $row['ItemNo'] . "</option>";