Php jquery.serialize()为正在编码的数组选择多个标记名
我有一个名为city[]的select multiple标记。[]括号应该表示稍后PHP的url查询字符串中的数组 我使用jQuery.serialize获取表单值,为AJAX调用构建查询字符串。但是,它看起来像.serialize正在对URL进行编码,而不是写入括号 我应该Php jquery.serialize()为正在编码的数组选择多个标记名,php,jquery,url-encoding,Php,Jquery,Url Encoding,我有一个名为city[]的select multiple标记。[]括号应该表示稍后PHP的url查询字符串中的数组 我使用jQuery.serialize获取表单值,为AJAX调用构建查询字符串。但是,它看起来像.serialize正在对URL进行编码,而不是写入括号 我应该 index.php?city[]=METROPLOIS&city[]=GOTHAM 相反,我得到了 index.php?city%5B%5D=METROPLOIS&city%5B%5D=GOTHAM 有
index.php?city[]=METROPLOIS&city[]=GOTHAM
相反,我得到了
index.php?city%5B%5D=METROPLOIS&city%5B%5D=GOTHAM
有没有办法让它停止只为名字编码?在某些情况下,城市名称可能有空格,因此我仍然需要它来编码。我认为您只是有点困惑,因为您可能不熟悉URL转义 但是,这在PHP中非常有效。例如,print\u r$\u GET将输出:
Array
(
[city] => Array
(
[0] => METROPLOIS
[1] => GOTHAM
)
)
被正确解释为数组并包含预期值。因为,city%5B%5D是city[]的有效URL编码字符串。为什么不能在另一端对其进行解码?为了安全起见,您不能阻止浏览器对url进行编码,而不仅仅是试图阻止编码。您可以将每个[]替换为例如brckt,当您获得该选项时,再次将其替换为[]。这是什么状态?抱歉,我将稍后发布答案。