编辑以便于理解。
好的,问题是jQuery没有将值传递给某个PHP文件,以便运行DELETE查询并删除您要求从数据库中删除的内容。
该脚本非常适用于另一个从MySQL请求信息并通过AJAX调用将其加载到php文件的文件。
问题可能出在这个脚本中的实际AJAX
$(".removeNote").live('click',function() {
$("#qpbox-content").show();
$("#qpbox-overlay").show();
$("#qpbox-loader").html("<img src='http://www.ajaxload.info/images/exemples/4.gif' />");
var xhr = $.ajax({
type: "GET",
url: "_class/delete_notes.php",
data: "ajax=1&nid=" + this.parentNode.id,
success: function(html){
$("#qpbox-utm").html(html);
$("#qpbox-loader").html("");
},
error: function (XMLHttpRequest, textStatus, errorThrown) {$("#qpbox-loader").html(errorThrown);}
});
});
这是上面的代码应该从中得到值的部分
<p style="margin-bottom:3px;" id="$nid">
<div id="$nid" style="float: right; padding: 4px;cursor: pointer;" class="removeNote">
<img src="$icon_sys_delete" alt="remove note" title="remove note"/>
</div>
</p>
该值记为$ nid
这是实际的删除部分
<?php
include '../object/db.class.php';
if($_GET['ajax'] == '1') {
$nid = $_GET['nid'];
$query = mysql_query("DELETE FROM notes WHERE nid = '$nid'");
echo "Note removed!";
}
?>
就是这样......
答案 0 :(得分:0)
尝试更改
data: "ajax=1&nid=" + this.parentNode.id,
到
data: "ajax=1&nid=" + jQuery(this).closest('div').attr('id')
我认为“div”是你想要获得“id”值的那个。
您的代码段的问题是您将JQuery与原始javascript混合使用。如果你想按照自己的方式去做(不使用jquery来获取值),你可以使用
data: "ajax=1&nid=" + this[0].parentNode.id,
答案 1 :(得分:0)
问题是<p>
不包含<div>
。因此,parentNode
的{{1}}不是.removeNote
标记。此外,p
属性应该是唯一的。我会从id
中删除nid
,然后只使用p
。