2013-10-12 3 views
0

온라인 테스트를 작성해야합니다. 나는 2 개의 테이블을 가지고 있는데, 하나는 질문을 포함한다 (2 개의 필드, 하나는 id, 하나는 질문 텍스트). 그리고 응답을 저장하기위한 또 다른 테이블 (ID 3 개, 질문 ID 1 개, 응답 1 개)이 있습니다. 여기온라인 테스트에서 답변 저장 및 데이터베이스로 보내기

내가 지금까지 서면으로 작성했습니다 방법 : 사용자가 슬라이드로 질문을보고 각각의 특정 질문에 대해 제공되는 각각의 텍스트 영역에서 답을 쓸 수 있도록

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

가 나는 또한주기 플러그인을 사용하고 있습니다.

내가 할 수없는 것은 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++; 
    } 

는 이제 질문은 내가 그와 액세스 $의 _POST의 [ 'answer'.i]을 통해 루프를 할 수 있고 삽입을 끝낼 때 0으로 시작하고 끝나는 것을 알고 있기 때문이다.

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

예, 이미 알아 냈습니다. 다시 도와 주셔서 감사합니다. Thumbs up;) –

+0

@ArashBarazandeh 나는 어떤 도움이 될 수있어서 기뻐하지만 실제로 내 대답을 투표함으로써 엄지 손가락을 올려 놓을 수 있으며 올바른 대답을 찾으면 그것을 받아 들일 수 있습니다. Thnx! – altsyset

관련 문제