来自php小白的第一篇文章

简单的多项选择题的php程序

题目要求如下图所示:
来自php小白的第一篇文章

实现步骤

  1. 书写一个简单的html静态页面,form表单
  2. 在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>
  1. 使用超全局变量$_Post[]进行传递值,使用for循环遍历输出;
$language=$_POST["language"];
$languagenum=count($language);
for($i=0;$i<$languagenum;$i++){
echo $language[$i]." ";
}
echo "恭喜你,答对了!";
  1. 将所有可能出现的情况使用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 "请选择你要选择的选项!";
    }
?>