2017-08-09 75 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 !== '') 這樣做的所有,關閉這個條件與錯誤信息。

這可能有幫助。