如何使用PHP获取组中复选框的值?

如何使用PHP获取组中复选框的值?,php,html,Php,Html,我在表格中添加了一组复选框,如下所示: <form action="next.php" method="get"> <input name="c1" value="1" type="checkbox"> <input name="c1" value="2" type="checkbox"> <input name="c1" value="3" type="checkbox"> <input name="c1" value="4" type="

我在表格中添加了一组复选框,如下所示:

<form action="next.php" method="get">
<input name="c1" value="1" type="checkbox">
<input name="c1" value="2" type="checkbox">
<input name="c1" value="3" type="checkbox">
<input name="c1" value="4" type="checkbox">
...
</form>
但是$\u GET数组只保存c1的最后一个值。我知道我可以使用
[]
符号来获得一个数组,但是这个链接看起来像

?c1[]=1&c1[]=3 [...]
我看到一些网站在没有
[]
的情况下生成URL,但仍然设法将所有值都考虑在内。他们是怎么做到的


谢谢大家!

如果要对多个不同的表单元素使用相同的字段名,PHP要求您使用伪数组表示法:

<input type="checkbox" name="c1[]" ... />
<input type="checkbox" name="c1[]" ... />
<input type="checkbox" name="c1[]" ... />
etc...
[]
告诉PHP将
c1
视为一个数组,并保留所有提交的值。如果没有
[]
,PHP只会用新的值覆盖前面的每个c1值,直到表单处理完成

不使用
[]
符号的站点自己进行表单处理,从
$\u服务器['query\u string']
检索查询字符串,然后自己进行解析。

use必须使用以下方法:

<input name="c1[]" value="1" type="checkbox">
<input name="c1[]" value="2" type="checkbox">
<input name="c1[]" value="3" type="checkbox">
<input name="c1[]" value="4" type="checkbox">

您仍然可以访问整个查询字符串。您可以将querystring解析为如下部分:

$qs = explode("&",$_SERVER['QUERY_STRING']);

foreach ($qs as $part) {
    if (strpos($part,"c1") !== false) {
        $split = strpos($part,"=");
        $values[] = substr($part, $split + 1);
    }
}

var_dump($values);
如果您的查询字符串如下所示:?c1=1&c1=3,则上面的代码会给您留下如下结果:

array(2) { 
    [0]=> string(1) "1" 
    [1]=> string(1) "3" 
}

并不是说您不能这样做,而是PHP使用数组表示法。就是这样。
array(2) { 
    [0]=> string(1) "1" 
    [1]=> string(1) "3" 
}