2012-10-12 33 views
0

我需要一些關於如何正確編碼包含10個問題的動態網頁的指導,每個問題都有自己的提交按鈕。這裏有一個簡單的背景和我正在做的事情。在一個頁面上爲10個提交按鈕編碼

我創建了一個用戶回答問題並點擊提交的問題/答案頁。如果回答正確,每個問題都有一個積分值加到用戶銀行。

通過包含三個字段 - 問題編號,問題,點的數據庫表在頁面上填充問題。每個問題都有一個問題編號分配給它,以便我可以輕鬆快速地確定問題和答案。這顯示正常(下面的代碼):

<? 
$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。此外,每個提交按鈕都具有基於questionNumber分配的值。我這樣做是爲了讓用戶(小孩)知道他們要回答哪個問題。這一切在頁面上顯示得非常好。

我遇到的問題是POST文件「processor.php」,它尚未創建。我設想它的工作方式是,當有人提交他們的答案時,processor.php文件將捕獲quesiotnNumber(分配給按鈕)並從文本字段中回答,然後再次驗證數據庫表。

我知道在使用多個按鈕時我應該使用SWITCH/CASE(而不是IF ELSE),這很好。但是,如何將表單中的QuestionNumber捕獲到processor.php文件中?

我這個項目的最終目標是填充數據庫中的問題表,讓網頁動態工作。

在此先感謝您的幫助和指導。

[R

回答

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

請注意,這是所有僞!你的旅費可能會改變!如果您有任何問題,請大聲說出來。

+0

嗨安德魯,你對你的理解是正確的。我對AJAX有點熟悉,並且使用它在另一個站點上登錄。我對你的回答有一個簡短的問題。 processor.php文件應該包含什麼內容?我不需要特定的編碼只是一個普通的方向,比如它應該只包含使用SWITCH/CASE運行檢查的查詢,還是應該包含更多?謝謝。 – user1497265

+0

你好。我很抱歉拖延 - 我上週已經離開了。我建議只是一個if檢查,看看是否發送了「問題」變量。然後驗證所有輸入,並根據需要對照數據庫進行檢查。有一點需要注意的是,您可以在請求dataType中請求JSON響應(請參閱http://api.jquery.com/jQuery.get/),然後使用_json_encode()_返回PHP腳本的響應。 –

相關問題