提问人:Gibon 提问时间:7/29/2022 最后编辑:BarmarGibon 更新时间:7/29/2022 访问量:1161
如何修复由window.history.replaceState引起的php中未定义数组键的警告?[复制]
How to fix a warning about undefined array key in php caused by window.history.replaceState? [duplicate]
问:
我的头标签中有一个 js 代码,以防止弹出有关重新提交表单的窗口。它有效,但它在我的选择输入(排序项目)中导致错误消息。 这是js代码:
if (window.history.replaceState){
window.history.replaceState(null, null, window.location.href);
}
HTML格式:
<form method="POST" id="form" enctype='multipart/form-data'>
Sort:
<select name="Sort" onchange="form.submit();" id="sort">
<optgroup label="Alphabetically">
<option value="alphabet_p" <?php if($_POST['Sort'] == 'alphabet_p') {echo "selected=selected"; } ?>>
A-Z
</option>
<option value="alphabet_rev_p" <?php if($_POST['Sort'] == 'alphabet_rev_p') {echo "selected=selected"; } ?>>
Z-A
</option>
</optgroup>
</select>
</form>
PHP(还有一些其他的东西):
function recipe_list_dishes() {
$con = mysqli_connect("localhost", "root", "", "cookbook");
$sort = $_POST["Sort"];
switch ($sort) {
case "alphabet_p":
$sql = "SELECT * FROM product WHERE type = $dish_type ORDER BY name";
break;
case "alphabet_rev_p":
$sql = "SELECT * FROM product WHERE type = $dish_type ORDER BY name DESC";
break;
}
mysqli_close($con);
}
当然,我删除了一些(至少我认为是这样)在这个问题上并不重要的东西。 这是警告消息(它显示在“选择”框中): 警告:第 129 行> A-Z 的 [xampp path] 中未定义的数组键“排序”(第 129 行是 HTML 中的第一个标记)。 没有 js,一切似乎都很好。我不能把它放在页脚旁边的正文标签中,因为它不起作用。 有没有办法解决它?
答:
1赞
Barmar
7/29/2022
#1
在不提交表单的情况下加载页面时没有变量。因此,请检查它是否已设置:$_POST
if(isset($_POST['Sort']) && $_POST['Sort'] == 'alphabet_p')
评论
0赞
Gibon
7/29/2022
现在,当我刷新页面时,它会将我的选择标签重置为 AZ(第一个选项):/
评论