PHP点击带confirm确认弹窗的按钮无法跳转至目标PHP页面问题求助
问题排查及解决方案
核心问题原因
- HTML元素嵌套不规范:你在
<a>标签内部嵌套了type="submit"的输入框,submit类型的input默认会触发表单提交行为,该行为优先级高于a标签的href跳转,直接阻断了页面跳转逻辑。 - HTML结构错误:你的代码在
while循环内部错误地重复输出</tbody>、</form>、多余的</tr>标签,导致整个表格结构被浏览器解析异常,也会导致a标签的交互逻辑失效。同时你的代码里没有对应的<form>开始标签,多余的</form>属于无效标签。
修复步骤
步骤1:修正跳转按钮的实现
不要在a标签内嵌套submit类型input,有两种常用修复方案:
方案1:直接用a标签模拟按钮(推荐)
给a标签加按钮样式,完全去掉input元素,逻辑最稳定:
// 可以给a加你需要的样式类,比如bootstrap的btn相关类 echo "<a href=\"PHadmin_approveHospital.php?id=".$row["HospitalID"]."\" onclick=\"return confirm('do you want to approve Y/N')\" class='btn btn-success'>Approve</a>";
方案2:保留input但修改类型为button,手动控制跳转
如果一定要用input按钮,就改成普通button类型,手动实现跳转逻辑:
echo "<input type=\"button\" value=\"Approve\" onclick=\"if(confirm('do you want to approve Y/N')){window.location.href='PHadmin_approveHospital.php?id=".$row["HospitalID"]."';}\">";
步骤2:修正表格结构错误
把while循环内部错误放置的闭合标签移到循环外部,删除无效的</form>标签,修正后的循环代码如下:
while($row = mysqli_fetch_assoc($result)){ echo "<tr>"; echo "<td>" . $row["HospitalID"] . "</td>"; echo "<td>" . $row["Hospitalname"] . "</td>" ; echo "<td>" . $row["email"] . "</td>" ; echo "<td>" . $row["contactno"] . "</td>" ; echo "<td>" . $row["status"] . "</td>" ; echo "<td>"; echo "<a href=\"PHadmin_editHospital.php?id=".$row["HospitalID"]."\" class='view' title='View' data-toggle='tooltip'><i class='material-icons'></i></a>"; echo "<a href=\"PHadmin_editHospital.php?id=".$row["HospitalID"]."\" class='edit' title='Edit' data-toggle='tooltip'><i class='material-icons'></i></a>"; echo "<a href=\"PHadmin_deleteHospital.php?id=".$row["HospitalID"]."\" onclick=\"return confirm('do you want to delete Y/N')\" class='delete' title='Delete' data-toggle='tooltip'><i class='material-icons'></i></a>"; echo "</td>"; echo "<td>"; if($row["status"] == "pending"){ // 这里替换为上面修复后的按钮代码 echo "<a href=\"PHadmin_approveHospital.php?id=".$row["HospitalID"]."\" onclick=\"return confirm('do you want to approve Y/N')\" class='btn btn-success'>Approve</a>"; } echo "</td>"; echo "</tr>"; } // 循环结束后再闭合tbody echo "</tbody>"; echo "</table>";
内容的提问来源于stack exchange,提问作者yukang
相关产品推荐
相关产品推荐

