【问题标题】:Radio buttons in PHP not working properlyPHP中的单选按钮无法正常工作
【发布时间】:2013-03-27 06:59:43
【问题描述】:

我有这个代码:

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

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

【问题讨论】:

    标签: php input radio-button


    【解决方案1】:

    尝试添加 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';
        }
    
    }
    ?>
    

    【讨论】:

    • 谢谢,我认为答案不正确,因为 $_POST 变量为空。
    【解决方案2】:

    不要检查$_POST['ans'],而是检查是否发布了一些内容:

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 2021-11-21
      相关资源
      最近更新 更多