0

それぞれ独自の送信ボタンを持つ 10 個の質問を含む動的な Web ページを適切にコーディングする方法について、いくつかのガイダンスが必要です。これが簡単な背景と私がしていることです。

ユーザーが質問に回答して [送信] をクリックする質問/回答ページを作成しています。各質問にはポイント値があり、正解するとユーザーの銀行に追加されます。

質問は、QuestionNumber、Question、Points の 3 つのフィールドを含むデータベース テーブルを介してページに入力されます。各質問には QuestionNumber が割り当てられているため、質問と回答を簡単かつ迅速に識別できます。これは問題なく表示されます(コードは次のとおりです):

<? 
$rt = mysql_query("SELECT * FROM Questions WHERE Status='Open' ORDER BY 'Number' LIMIT 10");
while ($row = mysql_fetch_array($rt)) {
$number=$row[0]; 
$category = $row[1];
$question=$row[2];
$points=$row[4];

?>
<form action="processor.php" method="post" class="qForm">
<div class="questionCell">
<div class="question"><? echo $question; ?></div>
<div class="answer">Answer: <input class="inputField" name="a0001" type="text"  size="40" maxlength="40" />
<input name="HHQuestion" value="Question: <? echo $number;  ?>" type="submit" /></div>
</div>
</form>
<? 
} 
?>

このフォームはページで 10 回繰り返され、それぞれに独自の質問と QuestionNumber があります。また、すべての送信ボタンには、質問番号に基づいて割り当てられた値があります。これは、ユーザー (幼い子供) がどの質問に答えようとしているのかがわかるようにするためです。これはすべて、ページ上で非常にうまく表示されます。

私が抱えている問題は、まだ作成されていない POST ファイル "processor.php" にあります。私が想定している動作方法は、誰かが回答を送信すると、processor.php ファイルが quesiotnNumber (ボタンに割り当てられている) を取得し、テキスト フィールドから回答を取得し、データベース テーブルで再度検証することです。

複数のボタンを使用する場合は、(IF ELSE ではなく) SWITCH / CASE を使用する必要があることを知っていますが、これで問題ありません。しかし、フォームの QuestionNumber を processor.php ファイルに取り込むにはどうすればよいでしょうか?

このプロジェクトの最終的な目標は、質問テーブルをデータベースに入力し、Web ページを動的に機能させることです。

ご協力とご指導をよろしくお願いいたします。

R

4

1 に答える 1

1

あなたの言い回しは少し混乱していますが、同じページですべての質問を実行しているにもかかわらず、各質問への回答をデータベースに送信したいという考えで正しく理解していますか?

もしそうなら、AJAX ライブラリを使用してデータを送り返し、迅速な応答を得ることをお勧めします。そこにはいくつかありますが、jQuery は非常に使いやすいです (他にも多くの機能があります)。以下は擬似コードです。

function submitAnswer(questionid)
{
    answer = document.getElementById("a000"+questionid);
    $.get("processor.php", {"answer": answer, "question": questionid}, function (data) {
        if (data.response == "200") {
            document.getElementById("response-"+questionid).innerHTML = "Thanks for answering";
        }
    });
}

次に、次のように呼び出すことができます。

<input type = "submit" onclick = "submitAnswer('<?=$number?>'); void(0); return false;">

これはすべて疑似であることに注意してください。あなたのマイレージは異なる場合があります!質問があれば声をかけてください。

于 2012-10-12T04:23:09.323 に答える