-1

私は以前にこの質問をしたことがありますが、誰も満足のいく答えを出すことができませんでした. 4 つのオプションの 4 つのラジオ ボタンがあるクイズ Web サイトがあります。ユーザーが送信ボタンをクリックすると、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

こんにちは、コードの下のデフォルトのクリックイベントを防ぐのに役立つかもしれないフィドルが見つかりました...

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 に答える