2013-10-12 32 views
0

我被要求寫一個在線測試。我有2個表格,其中一個包含問題(2個字段,一個用於標識,另一個用於提問文本)。另一張表格用於保存答案(有3個字段,一個用於標識,一個用於問題標識,另一個用於答案)。在線測試中保存答案並將它們發送到數據庫

以下是我到目前爲止已經寫它:

<form name="test" method="post" action="index.html"> 
    <div class="slideshowContainer"> 
     $question_query=dbquery("SELECT * FROM questions"); 
     while($question_array=dbarray($question_query)){ 
      echo' 
      <div class="question"> 
       '.$question_array['question_text'].' 
       <br /> 
       <textarea name="'.$question_array['id'].'"></textarea> 
      </div> 
      '; 
     } 
      echo' 
      <input id="finish" type="submit" name="finish_test" value="send" /> 
    </div> 
</form>'; 

我還使用週期插件,使用戶可以看到問題的幻燈片,併爲每個具體問題每個textarea的寫的答案。

我不能做的是我應該寫if(isset($ _ POST ['finish_test']))部分的方式。因爲據我所知,接收的數據是以數組的形式出現的。所以我想當我要保存答案並將它們發送到我的數據庫時,我可能需要另一個for或while元素。

你能提出什麼建議?

回答

0

當然,你需要遍歷$ _POST的結果,但它很好地爲你的代碼中的每個文本區域創建不同的id。這樣你就可以確定哪些答案。所以要做到這一點,我會做這樣的事情。

while($question_array=dbarray($question_query)){ 
     i = 0;   
     echo' 
     <div class="question".i> 
      '.$question_array['question_text'].' 
      <br /> 
      <input id='question' type='hidden' value="'.$question_array['id'].'"/> 
      <textarea name="answer".i></textarea> 
     </div>'; 
     i++; 
    } 

現在,因爲我知道,我從0開始和結束時的提問,我可以通過和訪問$ _ POST ['answer'.i]循環,使插入。

while ($_POST['answer'.$i]) { 
     $i = 0;  
    //insert query after establishing connection, which i believe you got figured out 
     $sql = 'INSERT INTO ANSWERS VALUES ($_POST['answer'.$i],  $_POST['question'.$i])';//Note you must have the question id in some hidden input field 
     $result = mysql_query($sql, $conn);//where $conn is your connection object 
    //after this you might want to do something with the $result, 
    $i++; 
} 
+0

我明白了。感謝您的回答。我可以問我該怎麼寫插入查詢? ANSWERS表具有以下字段:id,question_id,answer_text。 –

+0

是的,這已經算出來了,並且再次感謝幫助我。豎起大拇指;) –

+0

@ArashBarazandeh我很高興我可以得到任何幫助,但實際上可以通過投票回答我的讚許,如果您發現答案正確,您可以接受。日Thnx! – altsyset

相關問題