您的位置:首页 > 编程语言 > PHP开发

在PHP中处理表单之—Checkbox

2016-04-09 16:54 1001 查看
原文翻译自:http://www.html-form-guide.com/php-form/php-form-checkbox.html

单个checkbox

形如:

<form action="checkbox-form.php" method="post">
Do you need wheelchair access?
<input type="checkbox" name="formWheelchair" value="Yes" />
<input type="submit" name="formSubmit" value="Submit" />
</form>


如果`
$_POST['formWheelchair']`的值是"Yes",那么该checkbox被勾选


如果该checkbox未被勾选,那么`
$_POST['formWheelchair']`
将不被设置

如下是PHP处理表单的方式:

<?php

if(isset($_POST['formWheelchair']) &&
$_POST['formWheelchair'] == 'Yes')
{
echo "Need wheelchair access.";
}
else
{
echo "Do not Need wheelchair access.";
}

?>


isset方法可用于判定`formWheelchair`是否被勾选,如没有则返回false

checkbox组合

经常性的情况是多个checkbox,示例如下:

<form action="checkbox-form.php" method="post">

Which buildings do you want access to?<br />
<input type="checkbox" name="formDoor[]" value="A" />Acorn Building<br />
<input type="checkbox" name="formDoor[]" value="B" />Brown Hall<br />
<input type="checkbox" name="formDoor[]" value="C" />Carnegie Complex<br />
<input type="checkbox" name="formDoor[]" value="D" />Drake Commons<br />
<input type="checkbox" name="formDoor[]" value="E" />Elliot House

<input type="submit" name="formSubmit" value="Submit" />

</form>


请注意checkbox有完全相同的名称,(formDoor[],也请注意每个名字以[]结尾),使用[]代表每一个被勾选的复选框的值组成一个数组在PHP中获取,$_POST[‘formDoor’]将返回一个有被勾选复选框的值组成的数组

举个列子,我勾选了所有复选框,
$_POST['formDoor']
将会返回{A,B,C,D,E}数组,下例是如何取出数组值并显示出来:

<?php
$aDoor = $_POST['formDoor'];
if(empty($aDoor))
{
echo("You didn't select any buildings.");
}
else
{
$N = count($aDoor);

echo("You selected $N door(s): ");
for($i=0; $i < $N; $i++)
{
echo($aDoor[$i] . " ");
}
}
?>


可见`empty()`可用于数组的判空,`count`用于数组计数

检查某一特定选项是否被check

function IsChecked($chkname,$value)
{
if(!empty($_POST[$chkname]))
{
foreach($_POST[$chkname] as $chkval)
{
if($chkval == $value)
{
return true;
}
}
}
return false;
}


来自StackOverflow的问答

If your HTML page looks like this:

<input type="checkbox" name="test" value="value1">


After submitting the form you can check it with:

isset($_POST['test'])


or

if ($_POST['test'] == 'value1') ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: