注意 :
这有点难以谷歌,因为“GET”带来了很多“如何’获取’javascript形式的价值”,等等.
问题:
TL; DR版本第一
您是否可以使用表单的GET方法进行多选,并仍然检索每个单独的值?
扩展说明
我正在构建的可搜索目录的要求包括将GET方法与表单一起使用,以便用户可以在URL中查看其结果,并将搜索结果的直接链接发送给其他客户等.
其中一个可搜索字段是多选框(具有MULTIPLE属性的选择框).我的后端是用PHP编写的,我通常通过将名称设置为数组变量(name =“multiselect []”)来处理多选,并且post变量包含所选选项的数组($_POST [“multiselect” “] == array()).
这种情况下的问题是多选值传递给get字符串,如下所示:
action?multiselect=1&multiselect=2
因此无论最后一个值是什么,都会替换get字符串中变量的第一个初始化值. (在上面的例子中,multiselect等于“2”).
action?multiselect[]=1&multiselect[]=2
会导致$_GET [“multiselect”] == 2
我原本建议使用复选框,因为它允许我们以不同的方式命名元素并检查每个元素的真/假,但是这个特定的多选择有大约30个值,并且他们希望它在滚动中可用区域.
解决方法:
适合我.刚试过
http://www.nearby.org.uk/tmp/multi-test.html
<select name="multiselect[]" ...
结果在URL中
?多选[] = 2及多选[] = 3
这将使$_GET [‘multiselect’]成为PHP中的一个数组.
也许你的系统中有其他东西,剥离[]?