如何实现删除按钮点击确认弹窗?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
相关产品推荐
相关产品推荐

