【发布时间】:2020-02-07 19:43:29
【问题描述】:
我的 php 编码导致其他表单框、选项和按钮消失
我有一个 php 表单,其中包括 2 个使用 php 代码填充的选择函数,这些函数选择数据并分隔用逗号分隔的值,以填充选项,每个值包含一行,不包括逗号,我放了一个下面的可视化有助于显示正在发生的事情;
列的 SQL 内容
Black & Blue,Black & White,Black & Red
选择表单上的功能
Black & Blue
Black & White
Black & Red
代码本身可以正常工作,但是当您将其合并到表单中时,代码会导致其他表单项消失,如果您删除代码,其他项是可见的,但如果您重新引入它,表单项就会消失。
我把有问题的代码放在下面;
<select name="col" id="col">
<option>Select Colour</option>
<?php
include "publicaccess.php";
if ($link->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = ("SELECT `Colours` FROM `shopprod`");
foreach ($link->query($stmt) as $row_program){
$options = $row_program['Colours'];
$optionsArr = explode(",", $options);
foreach ($optionsArr as $row){
echo '<option>' . $row . '</option>';
}
}
$stmt->close();
$link->close();
?>
</select>
我希望这 2 个选择函数能够填充并允许使用表单的其余部分,但在使用 php 代码时表单的其余部分会消失。
它引发的错误是“未捕获的错误:调用字符串上的成员函数 close()”
任何建设性的建议将不胜感激。
【问题讨论】:
-
当其他表单元素消失时,您可以在浏览器中查看源代码吗?也许它抛出了一些错误。检查是否正在呈现 HTML 的其余部分。如果不是,则尝试确定执行的最后一行。分享您的结果或将错误文本添加到问题中(如果发现)。
-
您能否添加更多代码以包含整个表单,也许还可以添加生成的 html?
-
删除
$stmt->close();$stmt 只包含 sql 字符串。不能就此关闭。 -
已修复,谢谢#ascsoftw 修复它。当您如此专注于问题的复杂性时,有时很容易忽略一个简单的测试或解决方案。