我有一个pm系统,我希望删除所有已检查的邮件。到目前为止,它一次只删除一个,而不选择一个。相反,它删除具有最年轻id值的那个。我是ajax的新手,感谢所有的帮助。
这是我的功能:
function deletePm(pmid,wrapperid,originator){
var conf = confirm(originator+"Press OK to confirm deletion of this message and its replies");
if(conf != true){
return false;
}
var ajax = ajaxObj("POST", "php_parsers/pm_system.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
if(ajax.responseText == "delete_ok"){
_(wrapperid).style.display = 'none';
} else {
alert(ajax.responseText);
}
}
}
ajax.send("action=delete_pm&pmid="+pmid+"&originator="+originator);
}
答案 0 :(得分:1)
您可能需要修改表单才能执行此操作。您必须通过ajax将复选框作为数组传递给PHP脚本。
<input type='checkbox' name='pm[]' value='1'>1<br>
<input type='checkbox' name='pm[]' value='2'>2<br>
<input type='checkbox' name='pm[]' value='3'>3<br>
使用这样的复选框,PHP可以处理一个数组:
$_POST['pm'];
您需要修改您的ajax脚本才能发送数组,并且可能会更改您的PHP脚本以通过它接收的数组值进行循环。它可能期望一个整数(一个ID),你将要发送一个数组。
修订的Ajax方法:
$("#submit").on('click',function(e) {
e.preventDefault();
var data = {
'pmIds': $("input[name='pm[]']").serializeArray(),
'action' : 'delete_pm',
'originator' : 'whatever'
};
$.ajax({
type: "POST",
url: 'php_parsers/pm_system.php',
data: data,
success: function(result) {
window.console.log('Successful');
},
});
})