当前位置: 首页 > 知识库问答 >
问题:

如果没有选择单选按钮返回错误-PHP

汲丰茂
2023-03-14

我已经搜索了很多以前关于php和单选按钮的问题,但是我还没有找到对我的情况有帮助的东西。我正在为服务器端脚本类制作一个测验。我被困在实际的测验部分。如果用户没有选择问题的答案,我希望返回一条错误消息。相反,当我点击提交按钮而不选择任何选项时,我会自动重定向到结果页面。如何更正代码,以便用户在未回答所有问题的情况下点击提交时收到错误消息?下面是我为检查单选按钮和下一步而编写的当前代码。

<div id="question5"> <!-- each quiz question gets this set up -->
<h2 id="question5_error">WAIT! You did not pick an answer to this question!</h2>
<p>5. What creature pulls the Hogwarts carriages?<br>
<input type="radio" name="creature" value="Cornish Pixies" <?php if (isset($_SESSION["creature"]) && $_SESSION["creature"]="Cornish Pixies"){ echo"checked";} ?> > Cornish Pixies<br> <!-- php code checks to see if radio button has been selected-->
<input type="radio" name="creature" value="Clydesdales" <?php if (isset($_SESSION["creature"]) && $_SESSION["creature"]="Clydesdales"){ echo"checked";} ?> > Clydesdales<br>
<input type="radio" name="creature" value="Hippogriffs" <?php if (isset($_SESSION["creature"]) && $_SESSION["creature"]="Hippogriffs"){ echo"checked";} ?> > Hippogriffs<br>
<input type="radio" name="creature" value="Thestrals" <?php if (isset($_SESSION["creature"]) && $_SESSION["creature"]="Thestrals"){ echo"checked";} ?> > Thestrals<br>

<input type="hidden" name="sent" value="sent" onclick="Project1_Page2.php">
<input type="submit" name="goresults" value="Get Results?">|<input type="reset" name="resetquiz" value="Reset Quiz.">
</form> 
</article>
<?php
if(isset($_GET["sent"])){
echo "<script type = 'javascript'>";
if(!isset($_GET["question1"])){ // QUIZ QUESTION 1 CHECK
       $_SESSION["author"]=$_GET["author"];
    }
    else{
        echo "document.getElementById('question1').style.backgroundColor = '#ffcccc';
        document.getElementById('question1_error').style.display = 'block';";
    }
if(!isset($_GET["question2"])){ // QUIZ QUESTION 2 CHECK
    $_SESSION["godfather"]=$_GET["godfather"];
    }
    else{
        echo"document.getElementById('question2').style.backgroundColor = '#ffcccc';
        document.getElementById('question2_error').style.display = 'block';";
    }
if(!isset($_GET["question3"])){ // QUIZ QUESTION 3 CHECK
    $_SESSION["prison"]=$_GET["prison"];
    }
     else
    {
        echo"document.getElementById('question3').style.backgroundColor = '#ffcccc';
        document.getElementById('question3_error').style.display = 'block';";
    }   
if(!isset($_GET["question4"])){ // QUIZ QUESTION 4 CHECK
    $_SESSION["badguy"]=$_GET["badguy"];
    }
    else
    {
        echo"document.getElementById('question4').style.backgroundColor = '#ffcccc';
        document.getElementById('question4_error').style.display = 'block';";
    }
if(!isset($_GET["question5"])){ // QUIZ QUESTION 5 CHECK
    $_SESSION["creature"]=$_GET["creature"];
    }
    else
    {
        echo"document.getElementById('question5').style.backgroundColor = '#ffcccc';
        document.getElementById('question5_error').style.display = 'block';";
    }
echo "</script>";
}
?>

共有2个答案

龙繁
2023-03-14

首先,如果您使用的是收音机,则已将其属性名称设置为类似的名称

<form method="post">
    <input name="question" value="1" />
    <input name="question" value="2" />
    <input name="question" value="3" />
    <input name="question" value="4" />
</form>

通过这种方式,您可以这样设置逻辑语句。



    if(isset($_POST['question'])){

    //here you put the the right answer based on the user what he/she chose.


    }


我建议你使用的邮政是安全的。如果您使用的是GET,则url上将显示radio的值。我希望这会有所帮助。

和平

公沈义
2023-03-14

没有看到你的超文本标记语言,很难分辨,但这里有一些建议

在表单标记中,删除“Action”属性

<form method="post/get" >

然后创建一个变量

$haserror = false;

我不确定你想在这里实现什么,但是像这样修改代码

if(!isset($_GET["question1"])){ // QUIZ QUESTION 1 CHECK
       $_SESSION["author"]=$_GET["author"];
        echo "document.getElementById('question1').style.backgroundColor = '#ffcccc';
        document.getElementById('question1_error').style.display = 'block';";

$haserror=true;}

对所有复选框执行相同操作

然后在最后做你的如果显示结果页

if(!$haserror)
{
    echo '<META http-equiv="refresh" content="0;URL=newpage.php">';

}

然而,我建议重写整件事,因为你以错误的方式处理它

 类似资料:
  • 我是Selenium IDE的新手,在这里需要选择单选按钮的帮助。就我而言,我正在尝试为由单选按钮组成的特定表单生成一个测试用例。当我运行命令以单独选择其中一个单选按钮时,该函数可以工作,但如果我运行整个测试用例,则单选按钮不会被选中并给出找不到Element Id的错误。这是我的html: 我的IDE命令:单击Target: id=ProjectSolutionsProject0。我尝试了ver

  • 硒IDE - 运行脚本时,硒IDE中的单选按钮出现错误。在我的脚本中,需要选择单选按钮(选择日期),但其错误消息“[错误] 元素 id=radio250 未找到”。它在这里停止执行。即使我使用另一个日期,它仍然停在同一点上。如何更改动态中的值? 我是测试行业的新手,希望能在这方面有所帮助。我知道这与xpath有关,但我不知道如何使用它;)

  • 我正在尝试使用selenium和Python单击这个单选按钮。 我有 但它不允许我点击它。我如何使用名称、值或类、值等的组合来点击? 关于如何使用硒,是否有一个很好的信息来源?因为我所发现的大部分是在java上使用的,而我使用的是Python。 编辑:使用XPATH

  • 问题内容: 当我单击他的图像时,我想选择单选按钮,但是它不起作用。这是我尝试过的: 我的两个属性都具有相同的 data =“” 属性:对于图像和输入,单击图像时,是否有任何方法可以检查输入(该收音机)? 谢谢 更新: 我发现一些代码有效,但是仅在图像上单击了三下,因此当单击最后一个脚本时,脚本停止了,无法再次选择第一个或第二个,我不知道为什么…我认为必须取消选中所有单选按钮,然后选中选中的一个按钮

  • 当listview开始时,我发现第一个按钮被选中了?我试着用listview做点击按钮事件,但我不知道原因!我如何使它像列表中的所有按钮一样默认?请看一下图片。