来自php小白的第一篇文章
简单的多项选择题的php程序
题目要求如下图所示:
实现步骤
- 书写一个简单的html静态页面,form表单
- 在form表单中设置name值,使用数组进行存储;
<form action="" method="post">
AJAX<input type="checkbox" name="language[]" value="AJAX"/>
PHP <input type="checkbox" name="language[]" value="PHP"/>
FLASH <input type="checkbox" name="language[]" value="FLASH"/>
ASP <input type="checkbox" name="language[]" value="ASP"/>
JSP <input type="checkbox" name="language[]" value="JSP"/>
<input type="submit" value="确定"/>
</form><br>
- 使用超全局变量$_Post[]进行传递值,使用for循环遍历输出;
$language=$_POST["language"];
$languagenum=count($language);
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "恭喜你,答对了!";
- 将所有可能出现的情况使用if语句进行判断,
当2,4,5选项都选择时,即回答正确!当2,4,5选项都选择时,即回答正确!
当存在1,3选项时,即为错选!
当只是选择了2,4,5中的某个或者两个时,即为选择不全!
当提交按钮没有不是数组时,即需要进行多项选择!
if($language){//遍历传递过来的是数组
if(in_array("PHP",$language)&&in_array("ASP",$language)&&in_array("JSP",$language)){
echo "您选择的答案有:";
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "恭喜你,答对了!";
}else if(in_array("AJAX",$language)||in_array("FLASH",$language)){//判断是否有1和3选项,如果有1和3则提示错误
echo "您选择的答案有:";
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "对不起,你答错了!";
}else if(!in_array("AJAX",$language)||!in_array("FLASH",$language)){
//如果没有1和3选项则判断正确,此时判断选项是否足够
if(in_array("PHP",$language)||in_array("ASP",$language)||in_array("JSP",$language)){
echo "您选择的答案有:";
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "对不起,你的回答不全!";
}
}
}else{
echo "请选择你要选择的选项!";
}
所以最终的代码是
<?php
error_reporting(0);
echo "1.以下属于web开发语言的有哪几种?<br>";
echo '<form action="" method="post">
AJAX<input type="checkbox" name="language[]" value="AJAX"/>
PHP <input type="checkbox" name="language[]" value="PHP"/>
FLASH <input type="checkbox" name="language[]" value="FLASH"/>
ASP <input type="checkbox" name="language[]" value="ASP"/>
JSP <input type="checkbox" name="language[]" value="JSP"/>
<input type="submit" value="确定"/>
</form><br>';
$language=$_POST["language"];
$languagenum=count($language);
if($language){//遍历传递过来的是数组
if(in_array("PHP",$language)&&in_array("ASP",$language)&&in_array("JSP",$language)){
echo "您选择的答案有:";
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "恭喜你,答对了!";
}else if(in_array("AJAX",$language)||in_array("FLASH",$language)){//判断是否有1和3选项,如果有1和3则提示错误
echo "您选择的答案有:";
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "对不起,你答错了!";
}else if(!in_array("AJAX",$language)||!in_array("FLASH",$language)){
//如果没有1和3选项则判断正确,此时判断选项是否足够
if(in_array("PHP",$language)||in_array("ASP",$language)||in_array("JSP",$language)){
echo "您选择的答案有:";
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "对不起,你的回答不全!";
}
}
}else{
echo "请选择你要选择的选项!";
}
?>