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

删除数据时在php中确认对话框,php,Php,我这里有我的密码。但是,当我点击按钮时,根本没有效果 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-

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

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>";
echo”
删除
";

感谢那些提供帮助的人

此代码在此处有一个引用错误:

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
document.querySelector('form').addEventListener('submit', function(e){
    e.preventDefault();
    if (confirm('Are you sure you want to submit this data?'))
        this.submit();
});


最终,有许多不同的方法来完成您试图用这段代码做的事情。但是,保持不同语言的清晰分离将使您的代码更易于支持,并有助于避免因混合这些语言而导致的印刷错误。

效果很好:您确定这甚至可以正确地呈现为HTML吗?您的报价中似乎有错误。(在同一行代码中混合使用三种语言很容易导致这种情况。)您知道如何修复吗?对HTML属性使用双引号。将HTML放在PHP块之外,而不是作为
echo
语句。通过附加事件处理程序将JavaScript与HTML分开,而不是在
onsubmit
属性中编写内联JavaScript。这是因为此按钮位于我的php中的表中。如果我打算推出它,它不会对用户友好。我的一个建议以任何方式改变了用户体验。我只是建议您更改代码的组织方式,以避免引用错误。或者,您可以保留引用错误。如果我的表结构是这样的话,这样做行吗?(关于我的问题,与link一起)@Blances:这个建议在某种程度上不起作用吗?你试过了吗?图中显示的只是用户界面。我并不是建议你改变你的用户界面。所以现在还不清楚你在问什么,但是,这不会再起作用了。有什么功能吗?因为我只是照你说的做了我要把这个放在这里
document.querySelector('form').addEventListener('submit',函数(e){e.preventDefault();if(confirm('you real you want to submit this data?'))this.submit();})
@Blances:这是JavaScript代码,所以您可以将其放在
元素中。