简明现代魔法 -> PHP服务器脚本 -> 获取表单中的复选框数据
获取表单中的复选框数据
2009-09-10
网页表单设计
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" type="text/css" href="css/formStyle.css">
</head>
<body>
<table width="600" border="0" align="center" style="font-family:Verdana,宋体;font-size: 12px;">
<form action="animateLove.php" method="post" onsubmit="return chkinput(this)">
<tr>
<td height="25">09年7月新番中,你最喜欢以下哪部动画?</td>
</tr>
<tr>
<td height="25"><input type = "checkbox" name="animate[]" value="化物语"/>
化物语</td>
</tr>
<tr>
<td height="25"><input type = "checkbox" name="animate[]" value="卡娜日记" />
卡娜日记</td>
</tr>
<tr>
<td height="25"><input type = "checkbox" name="animate[]" value="公主恋人" />
公主恋人</td>
</tr>
<tr>
<td align="center"> </td>
</tr>
<tr>
<td align="center"><input type="submit" name="submit" value="提交"/> <input type="reset" value="重置"/></td>
</tr>
</form>
</table>
</body>
</html>
在网页上看起来的效果如下:
编写PHP脚本来处理数据
checkbox传过来的数据将会存储在animate数组中,变量$love为选中的项。变量$msg将两个字符串和变量$love通过连接符连在一起。
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <?php foreach ($_POST['animate'] AS $love); $msg = "你最喜欢的动画是——".$love." \n"; echo $msg; ?>
字符集的话,选择utf-8或者gb2312都是没问题的,但是要注意两个页面的字符集需要统一。
处理复选框多选
命名时,四个复选框,我采用了同一个名字,并且名字采用的是数组名animate[],只有这样,才能在提交表单时获取循环遍历数组。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
foreach ($_POST['animate'] AS $love);
$msg = "你最喜欢的动画是——".$love." \n";
echo $msg;
?>
<?php
echo"
但是我也喜欢以下几部:
";
for($i=0;$i < count($_POST["animate"]);$i++)
{
echo $_POST["animate"][$i];
echo "
";
}
?>

