Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何以逗号分隔数组的形式发送$\u GET数据_Php_Arrays_Get - Fatal编程技术网

Php 如何以逗号分隔数组的形式发送$\u GET数据

Php 如何以逗号分隔数组的形式发送$\u GET数据,php,arrays,get,Php,Arrays,Get,我被一些感觉应该简单的事情难住了。我有三个输入,在提交表单时需要在查询字符串中输入它们的值,如下所示 domain.com/?filter=1、2、3 这可能吗?我应该如何构造表单name属性?我还想知道是否可以在提交后获取服务器端的$\u getvalues,自己创建数组并将其设置为页面的URL,但从技术上讲,这不是重定向吗 理想情况下,这将通过查询字符串完成,这样URL就可以被复制、粘贴或共享,它也不是敏感数据。希望有人能帮忙…下面是一些粗略的标记 <form action="get"

我被一些感觉应该简单的事情难住了。我有三个
输入,在提交表单时需要在查询字符串中输入它们的值,如下所示

domain.com/?filter=1、2、3

这可能吗?我应该如何构造表单
name
属性?我还想知道是否可以在提交后获取服务器端的
$\u get
values,自己创建数组并将其设置为页面的URL,但从技术上讲,这不是重定向吗

理想情况下,这将通过查询字符串完成,这样URL就可以被复制、粘贴或共享,它也不是敏感数据。希望有人能帮忙…下面是一些粗略的标记

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


我并不建议使用这个代码片段,它的存在只是为了演示一个使用JavaScript的可能解决方案

HTML:


请注意,筛选器值输入没有
名称
,因此它们不会包含在GET查询字符串中。

据我所知,无法在表单元素上构造
名称
属性,以获取一个名称的逗号分隔值列表。括号中使用的语法将导致查询字符串看起来像
?filter[]=one&filter[]=two&filter[]=three
,PHP应该将其解释为数组。如果需要,您可以使用JavaScript和隐藏输入将其转换为逗号分隔的值,但如果JavaScript被禁用或不可用,这将无法工作。@skeggse感谢您的回复。我认为jS可能是解决这个问题的唯一方法。@Dan如果这个答案解决了您的问题,或者足以回答您的问题,请单击“向上/向下投票”下的灰色复选框接受它。这样,任何有类似问题的人都可以找到对你帮助最大的答案。
<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>
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(',');
});