来自多选的POST数组缺少其结束括号

时间:2013-09-11 08:30:38

标签: php jquery html post multi-select

这是一个非常奇怪的问题。我有一个带有几个字段的表单,其中一个是多选的,如下所示:

<select name="age_group[]" multiple="multiple">
  // options
</select>

发布到服务器时,$_POST数组中多选的键如下所示:

age_group[

为什么关闭括号被剥离了?此外,该字段不会保存为数组,但出于某种原因会保存为字符串。当console.log()我使用jQuery发送到服务器的对象时,它看起来都没问题,那个字段确实是一个数组。

POST标题:

  

POST /ajax.php HTTP / 1.1
  主持人:ds.local
  连接:保持活力
  内容长度:188
  接受:application / json,text / javascript, / ; Q = 0.01
  来源:http://ds.local
  X-Requested-With:XMLHttpRequest
  User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)&gt; Chrome / 29.0.1547.66 Safari / 537.36
  内容类型:application / x-www-form-urlencoded;字符集= UTF-8
  推荐人:http://ds.local/
  Accept-Encoding:gzip,deflate,sdch
  接受语言:en-US,en; q = 0.8
  Cookie:PHPSESSID = 9bniv5i558oslo6ne4ev59hdp6

POST数据,人类可读

action: search
entity: DrugStats
data[name]:
data[substance]:
data[atc_code]:
data[year]: n/a
data[gender]: n/a
data[age_group[]][]: 3
data[county]: n/a

POST数据,已编码

action=search&entity=DrugStats&data%5Bname%5D=&data%5Bsubstance%5D=&data%5Batc_code%5D=&data%5Byear%5D=n%2Fa&data%5Bgender%5D=n%2Fa&data%5Bage_group%5B%5D%5D%5B%5D=3&data%5Bcounty%5D=n%2Fa

处理代码

$.ajax({
        url: 'ajax.php',
        type: 'post',
        dataType: 'json',
        data: {
               'action': 'search',
               'entity':  $(entity).data('entity'),
               'data':    data,
               'page':    page
              },
        success: function(data) {
            // code
        },
        complete: function() {
            // code
        }
      });

0 个答案:

没有答案