2012-08-05 121 views
1

有谁知道如何以逗号分隔的方式输出复选框值? 让我们假设我有2个复选框:逗号分隔的复选框值

  • <input id="filetype_photo" name="type" type="checkbox" value="photo" >
  • <input id="filetype_graphic" name="type" type="checkbox" value="graphic" >

如果我有$ _GET找回他们,我得到以下网址:

  • sitename.com?type = photo & type = graphic 如果两个复选框都选中,我的目标是获得以下网址:
  • sitename.com?type=photo,graphic

我已经使用复选框重命名它们的阵列命名[],并使用下面的函数来litertae槽结果试过:

$type=$_GET['type']; 
while (list ($key,$val) = @each ($type)) { 
echo $val; 
} 

但这给了我复选框的值,但没有解决url问题。此外,通过将 type = photo更改为& type%5B%5D = photo

任何想法?

P.S.我需要解决它的服务器端

回答

3

用途:

<input id="filetype_photo" name="type[]" type="checkbox" value="photo" > 
<input id="filetype_graphic" name="type[]" type="checkbox" value="graphic" > 

而且你$type=$_GET['type']将是一个数组。

1

PHP不能处理具有相同名称的多个参数,除非它们以方括号结束。如果你想避免使用它们,你需要手动解析查询字符串。

0

使用JavaScript编译一个逗号分隔值的字符串,并用了window.location重定向

+0

“P.S.我需要解决它的服务器端” – 2012-08-05 22:02:19

+0

然后使用name =“type []”这两个复选框。那么网址应该没问题,并且你的迭代接收数组 – pho 2012-08-05 22:04:32

+0

这个迭代工作正常,我从两个复选框中选择名称为[]的值。问题是如何强制表单不输出每个复选框的两个值到url,而是输出它们的逗号分隔数组?我想过使用隐藏的输入字段并将数组值传递给它的值,这似乎是不好的做法,而不是真正的解决方案 – 2012-08-05 22:15:37