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

如何实现删除按钮点击确认弹窗?PHP代码问题求助

问题原因与解决方案

你的代码里弹窗不生效的核心问题是引号嵌套冲突:你用单引号'包裹整个HTML片段,而onclick属性里的confirm('Are you sure?')也用了单引号,这会导致PHP解析时提前闭合字符串,生成的HTML里的JS代码不完整,自然无法触发弹窗。

修复方案(三种可选)

方案1:转义内部单引号

把confirm里的单引号用反斜杠\转义,让PHP识别为字符串的一部分:

echo '<td>
<form action="" method="POST">
    <input type="hidden" name="catid" value="'.$row['cat_id'].'">
    <input class="btn btn-outline-success" type="submit" name="Delete" value ="Delete" onclick="return confirm(\'Are you sure?\')">
</form>
</td>';

方案2:替换引号嵌套方式

把onclick里的单引号换成双引号,同时保持外层的单引号包裹:

echo '<td>
<form action="" method="POST">
    <input type="hidden" name="catid" value="'.$row['cat_id'].'">
    <input class="btn btn-outline-success" type="submit" name="Delete" value ="Delete" onclick=\'return confirm("Are you sure?")\'>
</form>
</td>';

方案3:使用HEREDOC语法(更易读)

HEREDOC可以避免引号嵌套的麻烦,直接编写HTML内容,变量直接嵌入即可:

while ($row = mysqli_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>".$row['cat_id']."</td>";
    echo "<td>".$row['it_category']."</td>";
    // 使用HEREDOC输出表单部分
    echo <<<HTML
    <td>
        <form action="" method="POST">
            <input type="hidden" name="catid" value="{$row['cat_id']}">
            <input class="btn btn-outline-success" type="submit" name="Delete" value="Delete" onclick="return confirm('Are you sure?')">
        </form>
    </td>
HTML;
    echo "</tr>";
}

验证效果

修改后生成的HTML中,onclick属性会正确渲染为return confirm('Are you sure?'),点击删除按钮时就会弹出确认提示框,点击“确定”才会提交表单执行删除操作,点击“取消”则终止提交。

内容的提问来源于stack exchange,提问作者lakshitha dilhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:16:35