2017-08-09 90 views
0

我的问题是用户单击提交后,表单应该检查单选按钮被检查的所有问题。 它应该在用户没有回答的问题上显示错误信息。 但现在每次显示错误消息并且 上一个选中的单选按钮丢失时,刷新表单。我也有javascript定时器继续,但由于页面刷新后,定时器重新开始,因此 。 林新手到PHP,请指导我通过这个问题。任何帮助表示赞赏。验证后保留单选按钮的值php

     <?php session_start()?> 
         <?php 
         $errorexist=false; 
         if (isset($_POST["submit"])){ 
            for ($y=0;$y<5;$y++) 
            { 
             if(empty($_POST["question".$y])){ 
              $errorexist=true; 
              ${"err".$y}="* Please answer question ".($y+1)."<br>"; 
             }    
            } 
          if (errorexist==false){ 
            header ("Location: result.php"); 
            exit;} 
         } ?> 

    html part of the code 
          <li> 
        <span class="error"><?php echo $err0?></span> 
        <h3>What is the smallest prime number?</h3> 
        <input type="radio" name="question0" value="A"<?php echo ($question0=='A')? 'checked':''; ?> />2<br> 
        <input type="radio" name="question0" value="B"<?php echo ($question0=='B')? 'checked':''; ?> />1<br> 
        <input type="radio" name="question0" value="C"<?php echo ($question0=='C')? 'checked':''; ?> />3<br> 
        <input type="radio" name="question0" value="D"<?php echo ($question0=='D')? 'checked':''; ?> />4<br> 
        </li>   
+0

我认为,如果在检查/回答所有问题之前禁用提交按钮将会容易得多。 – wlisrausr

+0

关于无线电:缺少某些东西(或错误):$ question0在哪里定义?关于定时器:你意识到你在服务器上有什么和你在客户端上有什么不同(这是大多数人开始时错误的)。定时器的一个解决方案是在第一次加载页面的时候设置一个会话变量(如果没有定义,定义它,如果它是这样的)。然后你发送到客户端,时间流逝是当前时间和会话中的时间之间的时间(因为当前是在客户端测量的,你可能会遇到一些时区问题)。 – zozo

回答

0

把一个条件,其中如果有单选按钮错过它显示 错误消息,并且无需刷新页面。里面的PHP代码,

  1. 请求提交按钮
  2. 请求所有的单选按钮。即$question1 = $_REQUEST['question1'];
  3. 检查是否所有的值都设置了,而不是空的if(isset($question1) && !empty($question1) && $question1 !== '') 这样做的所有,关闭这个条件与错误信息。

这可能有帮助。