2013-04-05 48 views
0

我有这样的代码:单选按钮在PHP中不能正常工作

<?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> 

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

回答

2

尝试添加其他如果这样,如果选择的按钮是空的,它会传递给它。

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

} 
?> 
+0

谢谢,我认为答案是不正确的,因为$ _POST变量是空的。 – Tom 2013-04-05 00:52:31

1

而不是检查$_POST['ans']检查的东西张贴在所有的:

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

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