0

我正在开发一个项目,在该项目中,我使用 jquery/ajax 从选定的复选框中检索了名称和值。我已经在主页上使用 php 设置了复选框的名称和值。我想在单独的 php 脚本中使用 $_POST 提取名称,以便我可以使用这些名称从 MySQL 中删除项目。

$("#deleteproject").click(function () {
    var names = [];
    $('#projectcheckbox input:checked').each(function() {
        //all checkbox names are put in array
        names.push({name: $(this).attr('name'), value: $(this).val()});
    });
    alert($.param(names));
    return false;
});

上面的 alert($.param) 以 val1.name 和 val1.value 格式返回选中的复选框。

//run delete_project.php to erase projects from database
$.ajax({
    type: "post",
    url:"delete_project.php",
    data: names,
    cache: false,
    success:function() {
        alert(names + ' deleted')
    }
});

在过去的几天里,我一直在寻找答案,如果能帮助我解决这个问题,我将不胜感激。

4

1 回答 1

3

我更喜欢首先以这种方式使用 html 部分,因为在您的情况下它更加灵活和容易;

<input type="checkbox" name="projectcheckbox[]" value="foo_project" />
<input type="checkbox" name="projectcheckbox[]" value="bar_project" />
...

或者首先打印出数据库结果;

foreach ($projects as $project) {
   print '<input type="checkbox" name="projectcheckbox[]" value="'.$project.'" />';
}

然后调用jQuery.serialize会给你一个数据,比如;

projectcheckbox[]=foo_project&projectcheckbox[]=bar_project ...

PHP部分(发布后);

foreach ((array) $_POST['projectcheckbox'] as $pro) {
   // do something with $pro = foo_project or bar_project etc...
   // THIS PART FOR SECURITY GUYS :)
   // BUT! DO NOT FORGET TO SECURE YOUR DATA ($pro) HERE!!!!!
}
于 2013-02-19T00:28:50.887 回答