【发布时间】:2012-02-04 00:25:02
【问题描述】:
查询:
$(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'] 来获取序列化数据,但没有成功。
【问题讨论】:
-
是否有理由需要以 JSON 格式发送数据?表单的默认帖子将使您的数据以
$_POST['opts']的形式提供(它将返回一个数组)。如果您需要将其保留为 json,请尝试var_dump($_POST)看看您得到了什么。 -
他没有以 JSON 格式发送数据。
dataType参数表示服务器响应内容类型,而不是请求。 -
@Darin 啊,我用 jQuery 工作的不多,(它显示了吗?:D)但我指的是他的表单序列化和
data:{ content: content }行 -
@Grexis,这不是 JSON。 jQuery 自动将此 javascript 文字序列化为
application/x-www-form-urlencoded请求。与 JSON 无关。如果您想将 JSON 发送到服务器,您可以指定contentType: 'json',然后 JSON 序列化请求:data: JSON.stringify({ content: 'some content' })。 -
@Darin 我要停下来,我(有点)领先。不过,我认为这是最好的学习方式