我正在使用当前的Ajax请求来获取我所拥有的“已选中”复选框的ID。
$(function() {
$(":checkbox").click(function(){
$.post("ci_editor.php", { id: this.id, checked: this.checked });
});
});
此功能有效,问题是我不知道如何在“ci_editor.php”文件中接收它。
我知道我必须使用$ _POST方法,但是我用什么作为参数,因为我甚至不知道要检查的内容的id?
答案 0 :(得分:1)
如果未选中该复选框,您将无法抓住该帖子。在这种情况下,您应该创建一个包含所有期望输入名称的数组(包括复选框)并循环遍历此数组,检查输入名称是否存在于$ _POST数组中。
在否定的情况下,您确定用户没有点击该复选框。
答案 1 :(得分:0)
$ _ POST不是方法,它是superglobal variable,因此您发送的值包含在$ _POST中。 $ _POST还可以包含多个值作为associative array,在这种情况下,您使用诸如$ _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有效内容。