-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">';
            }


            ?>
4

3 回答 3

0

超时后禁用它:

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

于 2013-10-05T09:37:56.667 回答
0

嗨,找到了一个小提琴,它可能会帮助您防止代码下方的默认点击事件,这将有助于...

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

http://jsfiddle.net/zb8CZ/

于 2013-10-05T08:37:45.887 回答
0

您可以在提交按钮上使用 onclick 事件,如下所示:

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

因此,表单通过 JS 提交。

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

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

在这种情况下,“submit_button”是您的按钮的 ID 属性。

于 2015-04-11T17:04:20.623 回答