为什么?pgggo-taxon-select%5B%5D=14&pgggo-taxon-select%5B%5D=1
在URL中,有三个常见的原因可以解释为什么在提交表单时会出现这种情况:
表单的method
是post
(对应于HTTP POST方法)和:
a) 当前页面的URL中确实包含该字符串。E、 g.你上了example.com/my-page/?pgggo-taxon-select%5B%5D=14&pgggo-taxon-select%5B%5D=1
b) 表单的action
有那个字符串。E、 g。<form action="/my-app?pgggo-taxon-select%5B%5D=14&pgggo-taxon-select%5B%5D=1">
或者(在您的情况下,最有可能是),表单的method
是get
(对应于HTTP GET方法,以及get
是默认窗体method
).好的,但为什么不呢?pgggo-taxon-select[]=14&pgggo-taxon-select[]=1
?因为方括号之类的特殊字符([
和]
) URL中的(具有特定含义)需要进行百分比编码/URL编码(有关MDN 或Wikipedia); 因此,这些括号变为%5B
和%5D
分别在URL中-tryurlencode( \'[\' )
在PHP中。
所以别担心。。一切都很好
PHP仍然会处理输入($_GET[\'pgggo-taxon-select\']
) — 发送时为pgggo-taxon-select%5B%5D
通过GET方法-作为数组。事实上,如果PHP(或服务器)使用的是unescaped[
和]
.从您的评论(格式简洁),“但是post
方法没有添加任何查询字符串,但我仍然得到所需的数组。我可以使用post
? 是否推荐“:
只需使用更适合表单上下文/目的的方法-如果是用于上载文件,则应使用post
; 如果只是为了阅读/显示按特定条件筛选的帖子,您可以使用get
.
这些资源将帮助您了解何时在提交表单时使用HTTP方法: