删除功能无法正常工作 - Ajax

时间:2016-09-03 11:14:15

标签: javascript jquery ajax

我有一个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);
}

1 个答案:

答案 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');
      },
  });
})