You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP点击带confirm确认弹窗的按钮无法跳转至目标PHP页面问题求助

问题排查及解决方案

核心问题原因

  1. HTML元素嵌套不规范:你在<a>标签内部嵌套了type="submit"的输入框,submit类型的input默认会触发表单提交行为,该行为优先级高于a标签的href跳转,直接阻断了页面跳转逻辑。
  2. 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'>&#xE417;</i></a>";
    echo "<a href=\"PHadmin_editHospital.php?id=".$row["HospitalID"]."\" class='edit' title='Edit' data-toggle='tooltip'><i class='material-icons'>&#xE254;</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'>&#xE872;</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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:45:00