2013-10-05 41 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属性。