2013-10-05 37 views
-1

我以前曾問過這個問題,但沒有人能夠給出滿意的答案。 我有一個測驗網站,有四個選項的單選按鈕。當用戶點擊提交按鈕時,會執行一個PHP腳本來檢查答案是否正確。 我需要做的是在按下一次後禁用提交按鈕。我在上一個問題中收到的所有答案都干擾了我的表單的功能(尚未提交)。請給出一個不犧牲表單功能的解決方案。 另外,如果您給出一個Javascript代碼作爲您的答案,請幫助我實現這一點,因爲我在Javascript中很天真。單擊一次後禁用提交按鈕而不犧牲表單的功能

這裏是我的代碼:

<form action="programming_skills.php?ad=<?php echo $a; ?>" method="post" id="quizsubmit"> 
     <tr align="center"> 
     <?php echo $row['q_desc']; ?><br /> 
     <input type="radio" name="ans" value="<?php echo $row['ans1']; ?>" <?php echo ($_POST['ans'] == $row['ans1'] ? 'checked' : '') ?>/> 
     <?php echo $row['ans1']; ?><br /> 
     <input type="radio" name="ans" value="<?php echo $row['ans2']; ?>" <?php echo ($_POST['ans'] == $row['ans2'] ? 'checked' : '') ?>/> 
     <?php echo $row['ans2']; ?><br /> 
     <input type="radio" name="ans" value="<?php echo $row['ans3']; ?>" <?php echo ($_POST['ans'] == $row['ans3'] ? 'checked' : '') ?>/> 
     <?php echo $row['ans3']; ?><br /> 
     <input type="radio" name="ans" value="<?php echo $row['ans4']; ?>" <?php echo ($_POST['ans'] == $row['ans4'] ? 'checked' : '') ?>/> 
     <?php echo $row['ans4']; ?><br /> 

     <tr><td><input type="submit" id="sub" value=Submit_Answer></td></tr></form></table><table border="1" align="center"> 

     <?php 

       if(isset($_POST['sub'])) 
      { 
       $a_value=$a; 
       $answer=$_POST['ans']; 
     $q2="select * from question where q_id=$a_value"; 
     $r2=mysql_query($q2); 
       if ($row=mysql_fetch_array($r2)) 
       $trueans=$row['true_ans']; 

        if ($answer==$trueans) 
       { 
        $userid=$_SESSION['user_email']; 
        $q1="select * from temp_score WHERE user_id='$userid'"; 
        $rw=mysql_query($q1); 
        while($row=mysql_fetch_assoc($rw)) 
        $score=$row['temp_score']; 
        $score=++$score; 
        $z="update temp_score set temp_score='$score' where user_id='$userid'"; 
        mysql_query($z); 
         ?> 


         Your answer is correct.  <?php    $a=++$a; ?> 

         &nbsp;Click <a href="programming_skills.php?ad=<?php echo $a; ?>">Here</a> for next question 
         <?php 
        } 
        else 
        { 
         ?>Your answer is wrong. The correct answer is <i>'<?php echo $trueans; ?>'</i>.<br /> 
     <?php    $a=++$a; ?> 

       Click <a href="programming_skills.php?ad=<?php echo $a; ?>">Here</a> for next question 
       <?php  } 
       } 

         ++$a; 
       $a=++$a; 

       } 
       } 
     } 
     else 
     { 
      echo '<meta http-equiv="refresh" content="0; url=results.php">'; 
      } 


      ?> 
+1

「沒有答案可以解決我的問題」那麼爲什麼問這個問題呢?另外,Java!= JavaScript。另外,發佈一些相關的代碼。 – Mark

+0

你會得到與你的http://stackoverflow.com/questions/19194356/how-to-diasble-a-submit-button-after-submission-in-php問題相同的有價值的答案。 – sskoko

+0

解釋上次定義的解決方案以及爲什麼它們不適合您,我們不希望重新發送相同的解決方案... –

回答

0

喜找到了一個小提琴這可能會幫助ü防止下面的代碼將有助於默認點擊事件...

document.getElementsById("quizsubmit").onclick = function() { 
    this.disabled = true; 
}; 

http://jsfiddle.net/zb8CZ/

+0

那個小提琴是我上一個問題的答案。但正如我所說的,我不知道把JavaScript放在我的代碼中。我嘗試將它放在

0

禁用它超時後:

<input type="submit" id="sub" value=Submit_Answer onclick="setTimeout('document.getElementById(\"sub\").disabled=!0;',100);">

0

您可以在這樣的提交按鈕使用onclick事件:

onclick="this.disabled='disabled';this.form.submit();" 

因此,表單會通過JS提交。

或者更好的利用表單元素上的onsubmit事件的:

onsubmit="document.getElementById('submit_button').disabled = 'disabled';" 

「submit_button」是你的按鈕,在這種情況下,ID屬性。