php - 用ajax确认删除
问题描述
我们如何确认ajax调用的数组元素结果的删除?
我有一个数组:
$.ajax({
url: "recursive.php",
method:"POST",
dataType: "json",
success: function(data)
{
$('#treeview').treeview({
data: data
});
}
});
在我的recursive.php
我有这个代码:
$arr = array(
'text' => '<img src="img/pdf.png"><a href="delete.php?doc='.$sub_data["code"].' "target="_blank">'.$sub_data["n_doc"].'</a>
'
);
在此<a href
,我需要在删除前确认。在 delete.php 我有:
$sql = mysqli_query($conn, ' DELETE FROM saisie WHERE code = "'.$doc.'" ') or die (mysqli_error());
解决方案
在 AJAX 添加到 DOM 时完成显示确认的最简单方法是在视图的 DOMReady 函数中绑定一个委托事件侦听器。
由于 jQuery 在状态期间绑定事件处理程序DOMReady
,因此它不会绑定ajax.success
函数中的其他元素,除非响应包含 javascript 和dataType
is 'script' 或者您从成功函数解析data
变量并手动添加事件。
这假设一个带有id="treeview"
, 的元素已经存在。
<script type="text/javascript">
jQuery(function($) {
$(document).on('click', 'a[href^="delete.php"]', function(e) {
return window.confirm('Are you sure you want to delete this file?');
});
$.ajax({
url: "recursive.php",
method:"POST",
dataType: "json",
success: function(data) {
$('#treeview').treeview({
data: data,
selectedBackColor: 'rgb(211,211,211)',
selectedColor: '#4A4A49',
enableLinks:true,
collapsedall: true
});
}
});
});
</script>
<div id="treeview"></div>
这通过告诉 jQuery 监视#treeview
元素内部的所有点击来工作,以获取<a href="delete.php">
. 具体href^="delete.php"
表示一个以 开头的<a>
元素。如果找到,则执行回调函数并显示确认对话框。href
delete.php
如果您向锚元素添加class
属性,则可以替换为.recursive.php
a[href^="delete.php"]
a.classname
示例https://jsfiddle.net/ub1hw9tn/
$arr = array(
'text' => '<img src="img/pdf.png"><a class="delete" href="delete.php?doc='.$sub_data["code"].'" target="_blank">'.$sub_data["n_doc"].'</a>'
);
然后在你的 javascript
$(document).on('click', 'a.delete', function(e) {
if (!window.confirm('Are you sure you want to delete this file?')) {
e.preventDefault();
}
});
推荐阅读
- qliksense - LMTD 在 QlikSense 中的工作和解释
- git - 如何从数据恢复软件中恢复 .git 文件夹?
- sql - 引用的表中没有主键或候选键?
- r - 如何在 qplot() 中添加乳胶图例标签?
- centos - 在 CentOS 8 上为 CentOS 7 编译
- javascript - 在 NextJs 中调用 api 请求时收到错误“banner.map 不是函数”
- android - Android Layout 未显示或显示在前一个布局下方
- javafx - JavaFx 不在 SUSE 11 中运行
- sql-server - 将 SQL Server 代理作业从一台服务器移动到另一台服务器
- amazon-web-services - 我可以将 aws:PrincipalOrgID 与服务主体一起使用吗