脚本宝典收集整理的这篇文章主要介绍了php – 如果我在名称中带方括号的输入上使用jQuery serialize(),为什么会出现这个分号?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<input tyPE="checkBox" id="options_1" value="options_1" name="options[]"> <input type="checkBox" id="options_2" value="options_2" name="options[]"> <input type="checkBox" id="options_3" value="options_3" name="options[]">
我检查前两个选项并通过jquery中的ajax将其发送到服务器:
$.ajax({ type: "POST",url: "myfile.PHP",data: { 'options':$('input[name="options[]"]').serialize() },dataType: 'json',beforeSend: function(){ //do some stuff },success: function(msg){ //do some stuff } });
Firebug向我显示已发布的数据:
选项选项[] = options_1& options [] = options_2
到现在为止还挺好.
在myfile.PHP中我得到了如下的POST变量:
$options = $_POST['options'];
现在,当我回显$options时,我得到了这个:
"options[]=options_1&options;[]=options_2"
第二对括号前面的分号从哪里来?这真让我抓狂.
我已经在POST数据上使用了utf8_decode以及urldecode和rawurldecode.没有什么变化.我也逃过了ajax调用中的方括号,如下所示:
data: { 'options':$('input[name="options\\[\\]"]').serialize() },
这也没有帮助.任何人的想法?
data: { 'options':$('input[name="options[]"]').serializeArray() },
对我来说,这将以与GET请求相同的格式输出标准字符串.
以上是脚本宝典为你收集整理的php – 如果我在名称中带方括号的输入上使用jQuery serialize(),为什么会出现这个分号?全部内容,希望文章能够帮你解决php – 如果我在名称中带方括号的输入上使用jQuery serialize(),为什么会出现这个分号?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。