JQUERY:
$(document).ready(function(){
$('form').submit(function(){
var content = $(this).serialize();
//alert(content);
$.ajax({
type: 'POST',
dataType: 'json',
url: 'http://localhost/test/generate',
timeout: 15000,
data:{ content: content },
success: function(data){
$('.box').html(data).fadeIn(1000);
},
error: function(){
$('.box').html('error').fadeIn(1000);
}
});
return false;
});
});
HTML:
<form>
<input type="checkbox" value="first" name="opts[]">
<input type="checkbox" value="second" name="opts[]">
<input type="checkbox" value="third" name="opts[]">
<input type="submit">
</form>
如何在PHP中处理(或读取)多个已选中复选框的值?我尝试使用$_POST['content']
来获取序列化数据,但没有运气。
答案 0 :(得分:5)
替换:
data:{ content: content } // <!-- you are prefixing with content which is wrong
使用:
data: content
现在,在PHP脚本中,您可以使用通常应该返回数组的$_POST['opts']
。
答案 1 :(得分:1)
尝试
echo $_POST['opts'][0]. "<br />";
echo $_POST['opts'][1]. "<br />";
echo $_POST['opts'][2]. "<br />";
您将数组发布到服务器,并且它在post变量'opts'中可用。请记住:未经检查的框不会被发布。
答案 2 :(得分:0)
选择的答案对我来说仍然不起作用,但这是做了什么:
var checkedBoxesArr = new Array();
$("input[name='checkedBoxes']:checked").each(function() {
checkedBoxesArr.push($(this).val());
});
var checkedBoxesStr = checkedBoxesArr.toString();
var dataString = $("#" + formID).serialize() +
'&checkedBoxesStr=' + checkedBoxesStr;
[以上代码在您的javascript中进行,然后序列化表单数据]
首先,循环选中复选框并将它们放入数组中。
接下来,将数组转换为字符串
最后,手动将它们附加到序列化表单数据 - 这样您就可以引用PHP中的字符串以及其余的序列化数据。
这个答案部分来自这篇文章:Send multiple checkbox data to PHP via jQuery ajax()
答案 3 :(得分:-2)
您的代码中存在错误:
url: 'http://localhost/test/generate.php'
,扩展名为