删除数据时在php中确认对话框

时间:2016-03-06 18:00:04

标签: php

Image

我的代码在这里。但是当我点击按钮时,根本没有效果。

echo "<td>
<form action='http://localhost:1130/gradsys/subjects/delete.php?lrn=" . $row->lrn . "' method='POST' onsubmit='return confirm('Are you sure you want to submit this data?')'>
<div class='btn btn-danger delete-btn'>
<span class='fa fa-trash fa-fw'>
</span>Delete
</div>
</form>
</td>";

感谢那些愿意帮助的人

1 个答案:

答案 0 :(得分:0)

此代码在此处出现引用错误:

onsubmit='return confirm('Are you sure you want to submit this data?')'

单引号字符串中的单引号字符串无法解析,因此导致HTML / JavaScript无效。

请考虑在一行代码(PHP,HTML,JavaScript)上混合三种不同的语言。这可能非常容易导致引用错误。

一些建议......

将PHP与HTML分开

为什么要对所有HTML使用echo语句?首先把它放在PHP标签之外。像这样:

?>
<td>
    <form action="http://localhost:1130/gradsys/subjects/delete.php?lrn=<?php=$row->lrn; ?>" method="POST">
        <div class="btn btn-danger delete-btn">
            <span class="fa fa-trash fa-fw"></span>
            Delete
        </div>
    </form>
</td>
<?php

对HTML属性使用双引号

请注意,上面的代码中HTML中的单引号已替换为双引号。对于HTML规范,这在技术上更正确。

将JavaScript与HTML分开

另请注意,在上面的代码中我完全删除了onsubmit属性。而不是尝试在字符串内写入字符串(在字符串中),而是将该代码与HTML标记分开。稍后,在JavaScript中,您可能会遇到以下情况:

document.querySelector('form').addEventListener('submit', function(e){
    e.preventDefault();
    if (confirm('Are you sure you want to submit this data?'))
        this.submit();
});

最终,有许多不同的方法可以完成您尝试使用此代码执行的操作。但我们的想法是,将不同的语言保持清晰分离将使您的代码更容易支持,并有助于避免混合这些语言的印刷错误。