php – 如果我在名称中带方括号的输入上使用jQuery serialize(),
发布时间:2020-12-13 13:18:01 所属栏目:PHP教程 来源:网络整理
导读:我有以下 HTML: 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[]" 我检查
我有以下
HTML:
<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() }, 这也没有帮助.任何人的想法?
我有这个确切的问题,我只能通过使用“.serializeArray()”让它工作,我希望这是你正在寻找的.
data: { 'options':$('input[name="options[]"]').serializeArray() }, 对我来说,这将以与GET请求相同的格式输出标准字符串. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |