Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery.serialize()为正在编码的数组选择多个标记名_Php_Jquery_Url Encoding - Fatal编程技术网

Php jquery.serialize()为正在编码的数组选择多个标记名

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 有

我有一个名为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

有没有办法让它停止只为名字编码?在某些情况下,城市名称可能有空格,因此我仍然需要它来编码。

我认为您只是有点困惑,因为您可能不熟悉URL转义

但是,这在PHP中非常有效。例如,print\u r$\u GET将输出:

Array
(
    [city] => Array
        (
            [0] => METROPLOIS
            [1] => GOTHAM
        )

)

被正确解释为数组并包含预期值。因为,city%5B%5D是city[]的有效URL编码字符串。

为什么不能在另一端对其进行解码?为了安全起见,您不能阻止浏览器对url进行编码,而不仅仅是试图阻止编码。您可以将每个[]替换为例如brckt,当您获得该选项时,再次将其替换为[]。这是什么状态?抱歉,我将稍后发布答案。