如何以逗号分隔的数组发送$ _GET数据

时间:2015-08-22 17:07:47

标签: php arrays get

我对那些感觉应该很简单的东西感到难过。我有三个<select>输入,在提交表单时需要查询字符串中的值;

domain.com/?filter=one,two,three

这可能吗?我应该如何构造name形式的属性?我还想知道我是否可以在提交后获得$_GET值服务器端并自己创建阵列并将其设置为页面的URL,但技术上是不是重定向?

理想情况下,这将通过查询字符串完成,因此可以复制和粘贴或共享URL,它也不是敏感数据。希望有人可以帮助...下面的一些粗略标记;

<form action="get">
   <select name="filter[]"></select>
   <select name="filter[]"></select>
   <select name="filter[]"></select>
   <button type="submit>Submit</button>
</form>

..并且有一个原因导致所有<option>元素都不在一个<select>中,我知道它并不理想!感谢

1 个答案:

答案 0 :(得分:1)

我不建议完全使用此代码段,它仅用于演示使用JavaScript的可能解决方案。

HTML:

<form action="get" id="myform">
  <input id="filter-result" name="filter" type="hidden">
  <input class="filter-value">
  <input class="filter-value">
  <input class="filter-value">
  <button type="submit">Submit</button>
</form>

JavaScript的:

var slice = Array.prototype.slice;
var myform = document.querySelector("#myform");

myform.addEventListener('submit', function() {
  document.querySelector("#filter-result").value =
    slice.call(myform.querySelectorAll(".filter-value"))
    .map(function(input) {
      return input.value;
    }).join(',');
});

请注意,过滤器值输入没有name,因此它们不会包含在GET查询字符串中。