0

我有这个代码:

<?php 
if (isset($_POST['ans'])) {
    $answer = $_POST['ans']; 
    if ($answer == "ans1") {          
        echo 'Correct';      
    }
    else {
        echo 'Incorrect';
    }
}
?>
<form action="example.php" method="post">
  Answer 1 <input type="radio" name="ans" value="ans1" /><br />
  Answer 2 <input type="radio" name="ans" value="ans2"  /><br />
  Answer 3 <input type="radio" name="ans" value="ans3"  /><br />
  Answer 4 <input type="radio" name="ans" value="ans4"  /><br />
  <input type="submit" value="submit" />
</form>

当我选择错误的按钮时,它告诉我不正确,当我选择正确的按钮时,它告诉我正确。问题是,如果没有选择任何按钮,则不会发生任何事情。它不会回显不正确或正确。即使答案是空的,那它也应该是不正确的。

4

2 回答 2

2

尝试添加 else if 这样如果选择的按钮为空,它将传递给它。

    <?php
if (isset($_POST['ans'])) {
    $answer = $_POST['ans']; 
    if ($answer == "ans1") {          
        echo 'Correct';      
    }
    else if(empty($answer)){
        echo 'Select Button';
    }
    else {
        echo 'Incorrect';
    }

}
?>
于 2013-04-05T00:47:39.780 回答
1

而不是检查$_POST['ans']是否已发布某些内容:

if ('POST' === $_SERVER['REQUEST_METHOD']) {
    $answer = isset($_POST['ans']) ? $_POST['ans'] : false;
    if ($answer == "ans1") {          
        echo 'Correct';      
    }
    else {
        echo 'Incorrect';
    }
}

另一种方法是添加另一个隐藏输入并检查它。

于 2013-04-05T00:48:22.190 回答