PHP程序题:编写回答多项选择题的php程序,具体要求如下图

如题所述

就帮你写一下好了  我的php文件名称是test.php  你可以改成自己的php文件名称 好像是4zuoy2.php

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8" />
    <title>测试</title>
</head>
<body>
    <form action="test.php" type="post">
        <div class="select-area">
            <input type="checkbox" name="program[]" value="1" />AJAX
            <input type="checkbox" name="program[]" value="2" />PHP
            <input type="checkbox" name="program[]" value="3" />FLASH
            <input type="checkbox" name="program[]" value="4" />ASP
            <input type="checkbox" name="program[]" value="5" />JSP
        </div>
        
        <div class="submit-button">
            <input type="submit" class="submit">确定</button>
        </div>

    </form>
</body>
</html>

<?php
    !empty($_POST['program']) ? $program = $_POST['program'] : '';
    if ($program) {
        //遍历传递过来的是数组
        if (in_array(2, $program)&&in_array(4,$program)&&in_array(5,$program)) {
                    echo '正确';
            }elseif (!in_array(2, $program) || !in_array(4,$program) || !in_array(5,$program)) {
                echo '回答不全!';
            }else{
                echo '错误!';
            }        
    }
?>

追问

就是本来正确的是三个,但把五个打钩也是显示正确,然后错误的没有显示出来,你还能再更改一下吗?

追答

可以,送佛送到西

这个判断有点失误,我重新给你写一个判断

<?php
    !empty($_POST['program']) ? $program = $_POST['program'] : $program = '';
    if ($program) {
        //遍历传递过来的是数组
        if (in_array(2, $program)&&in_array(4,$program)&&in_array(5,$program)&&!in_array(1,$program)&&!in_array(3,$program)) {
                    echo '正确';
                    
            }elseif (!in_array(1,$program)&&!in_array(3,$program)) {
            //如果没有1和3则判断正确,此时判断是否选项足够
            if(!in_array(2, $program) || !in_array(4,$program) || !in_array(5,$program)){
                    echo '回答不全!';
            }

            //判断是否有1和3,如果有1和3则提示错误
            }else{
                echo '错误!';
            }        
    }else{
         echo '错误!';
    }
?>

追问

改成
确定改成
多的一个else应该删掉
以及“ 与‘ 没有分清楚

追答

。。。那个不是,那个是判断你没有选择值却提交了,就是program为空的情况,html无所谓,我用ajax提交用顺手了,有点忘了标准form写法了

题中说其他任何情况都是错误,也就是说你提交过去的值为空也是要判断的,所以两个else

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-20
<html>
<head>
</head>
<body>
<form method="post" action="">1. 以下属于Web开发语言的有哪几种?<br />
Ajax<input type="checkbox" name="da[]" value="1" />
PHP<input type="checkbox" name="da[]" value="2" />
FLASH<input type="checkbox" name="da[]" value="3" />
ASP<input type="checkbox" name="da[]" value="4" />
JSP<input type="checkbox" name="da[]" value="5" />
<input type="submit" name="sub" value="确定">
</form>

<?php
if(isset($_POST['sub'])){
$answer = $_POST["da"];
$s=count($answer);
if($s>3){
echo '对不起,答错了';
}
elseif($s<=3){
$num=0;
$true = 0;
$false = 0;
foreach($answer as $a)
switch($a){
case 2:$true++;;break;
case 4:$true++;break;
case 5:$true++;break;
default :$false++;break;
}
if($false!=0)echo '您选择答案有含有PHP, FLASH,结果:对不起,答错了!';
elseif($true==3)echo '您选择答案有:PHP, ASP,JSP,结果:恭喜您,答对了';
else echo "你的答案选少了!";
}
}
?>
</body>
</html>
第2个回答  2016-12-04
获取多选框的值,传到php。判断是否正确。是否选全。追问

我要的是程序、、、、

相似回答