微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – HTML使用GET进行多选

注意 :

这有点难以谷歌,因为“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中的一个数组.

也许你的系统中有其他东西,剥离[]?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐