0

我正在使用这个当前的 Ajax 请求来获取我拥有的“选中”复选框的 ID。

$(function() {
    $(":checkbox").click(function(){
        $.post("ci_editor.php", { id: this.id, checked: this.checked });
    });                 
});

此功能有效,问题是我不知道如何在“ci_editor.php”文件中接收它。

我知道我必须使用 $_POST 方法,但是由于我什至不知道要检查的内容的 id,我应该使用什么作为参数?

4

2 回答 2

1

如果未选中该复选框,您将无法查看该帖子。在这种情况下,您应该创建一个包含所有预期输入名称(包括复选框)的数组并遍历该数组,检查 $_POST 数组中是否存在输入名称。

在否定的情况下,您确定用户没有单击复选框。

于 2013-10-11T15:48:46.947 回答
0

$_POST 不是一种方法,它是一个超全局变量,因此您发送的值包含在 $_POST 中。$_POST 还可以包含多个值作为关联数组,在这些情况下,您可以使用诸如 $_POST['id'] 之类的键来获取值,该键表示与 $_POST 中的 'id' 键关联的数组索引。

您的逻辑中有几件事不太正确,首先,不要在单击复选框时发布值,除非只有一个并且您没有其他更好的方法来触发发布。如果有多个复选框,你可以有很多,而不仅仅是一个,所以你的第三行应该是这样的(注意数组):

$.post("ci_editor.php", [{ id: this.id, checked: this.checked }, { id: this.id2, checked: this.checked2 }] );

然后 $_POST 应该是数组本身,你只需要遍历它就可以了。

要处理不同数量的复选框,请尝试以下操作:

var payload = new Array();

$.each( $(":checkbox") , function( index, value ) {
   //value holds the reference of the check box
   if(value.attr('checked')){
       //Build the object with whatever values from the checkbox you require.

       payload.push( { id: value.id, checked: value.attr('checked') } )
   }
})

并使用有效负载数组作为您的 $.post 有效负载。

于 2013-10-11T16:06:37.160 回答