4

嗨,我是 php 新手,我想知道'checkbox'单击提交后如何计算检查了多少。例如:

<input type = "checkbox" value = "box" name = "checkbox1"/>
<input type = "checkbox" value = "box" name = "checkbox2"/>
<input type = "checkbox" value = "box" name = "checkbox3"/>
4

7 回答 7

19

将复选框名称作为数组给出

<input type = "checkbox" value = "box" name = "checkbox[]"/>

并在提交后尝试

$checked_arr = $_POST['checkbox'];
$count = count($checked_arr);
echo "There are ".$count." checkboxe(s) are checked";

注意:并且基于您的表单提交使用的方法......无论是$_GET或者$_POST您需要使用$_POST['checkbox']POST方法$_GET['checkbox']GET方法

于 2013-09-02T11:38:55.767 回答
1

您必须重命名名称并添加值

<input type = "checkbox" value = "box" name = "checkbox[]" value="1"/>
<input type = "checkbox" value = "box" name = "checkbox[]" value="2"/>
<input type = "checkbox" value = "box" name = "checkbox[]" value="3"/>

这样,您不仅会知道数字(实际上并不需要)

echo count($_POST['checkbox']);

但也有实际选择的值:

foreach($_POST['checkbox'] as $val)
{
    echo "$val<br>\n";
}
于 2013-09-02T11:43:17.150 回答
1
$checkedBoxes = 0;

// Depending on the action, you set in the form, you have to either choose $_GET or $_POST
if(isset($_GET["checkbox1"])){
  $checkedBoxes++;
}
if(isset($_GET["checkbox2"])){
  $checkedBoxes++;
}
if(isset($_GET["checkbox3"])){
  $checkedBoxes++;
}
于 2013-09-02T11:41:05.230 回答
1
<input type = "checkbox" value = "box" name = "checkbox"/>
<input type = "checkbox" value = "box" name = "checkbox"/>
<input type = "checkbox" value = "box" name = "checkbox"/>

要检查哪些框已被选中,只需像这样遍历 chk[] 数组:

$chk_array = $_POST['checkbox'];

for($chk_array as $chk_key => $chk_value)
{
print 'Checkbox Id:'. $chk_key . ' Value:'. $chk_value .'is
checked';
}
于 2013-09-02T11:41:47.060 回答
0

使用 jQuery 你可以实现它:

$("input:checkbox:checked").length

这将返回选中的复选框数。

在 php 中,您需要将其作为数组传递。

echo count($_POST['checkbox']);

于 2013-09-02T11:40:05.697 回答
0

您可以将复选框的名称设置为数组:

<input type = "checkbox" value = "box" name = "checkbox[1]"/>
<input type = "checkbox" value = "box" name = "checkbox[2]"/>
<input type = "checkbox" value = "box" name = "checkbox[3]"/>

然后你将在 PHP ( $_POST['checkbox']) 中有一个数组:

echo count( $_POST['checkbox'] ); // this will give you the count

否则,您可以遍历它们中的每一个并增加一个变量:

$counter = 0;
foreach( array('checkbox1', 'checkbox2', 'checkbox3') as $name ) {
  if( isset( $_POST[ $name ] ) {
     $counter++
  }
}
echo $counter;
于 2013-09-02T11:41:48.893 回答
-1

当您单击提交时,所有选中的框都将在请求中。在你的情况下,如果checkbox1被选中,你会得到:“checkbox1=box”

如果您使用GET作为方法,它将如下所示:http://yoururl.com/yourcode.php?checkbox1=box并且您可以使用 $_GET['checkbox1'] 访问它

如果您使用POST作为方法,您可以使用 $_POST['checkbox1'] 访问它

您还可以使用 isset($_POST['checkbox1']) 检查该框是否已选中(以及在请求数据中)

于 2013-09-02T11:44:01.090 回答