2012-01-01 50 views
2

目標:如何使用jQuery和MySQL在同一頁面上提交和顯示?

創建問答&一個腳本(使用PHP,JavaScript和jQuery的),使用戶能夠提出問題並提交答案說的問題。 如果用戶提交了新答案,該答案將被插入到數據庫中,並且包含答案的div將自動刷新以包含/查看新提交的答案。

問題:

提交答案後,提交過程是不工作

這裏是我的代碼:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script language="JavaScript"> 
    $(document).ready(function() 
     { 
     /*Function # 4: 
      Hide the AnswerForm and show Answers where the div will be automatically refreshed upon answer submission. <>>>> REVIEW!!! */ 
     function addAnswer(i,qID) 
     { 
      //alert("newanswer-q"+i); 

      //$("newanswer-q"+i).style.display("none"); 
      //$("Answers-q"+i).style.display("block"); 
      changeDiv("Answers-q"+i, "block"); 

      //step # 1: define posted data to insert into database 
      var name = $("input#name").val();; 
      var answer = $("input#answer").val();; 

      alert(name+","+answer); 

      //step # 2: submit form to be processed by CHANGE.PHP to insert into DB 
       $.ajax({ 
       type:"POST", 
       url:"change.php", 
       data: "questionID="+qID+"&count="+i+"&name="+name+"&answer="+answer, 
       success: function(data) 
         { 
          if(data==0) 
          { 
           alert("YEEEEEEEEEESSSS!!!!!! :DDDDDD"); 
           $("#Answer-q"+i).html("Finally!"); 
          } 
          else 
          { 
           $("#Answer-q"+i).html("?!?!"); 
          } 
         } 
       }); 

      //Step # 3: refresh Answers div 
      //changeDiv('Answers-q'+i, 'block'); 

      $("#Answers-q"+i).load("printAnswers.php"); 
     }//end addAnswer 


     $("#refreshAnswers").click(function(evt){ 
     $("#refreshAnswers").load("printAnswers.php"); 
     evt.preventDefault(); 
     }); 
    } 
    </script> 


     <style type="text/css"> 

     .answers 
     { 
      background-color: red; 
      position: relative; 
      display: block; 
      left: 1in; 
     } 

     .answerform 
     { 
      background-color: yellow; 
      position: relative; 
      display: block; 
      left: 1in; 
     } 
     .error 
     { 
      color: red; 
      display:none; 
     } 
     </style> 

    </head> 
    <body> 
     <?php 
      mysql_connect("#", "#", "#") or die(mysql_error()); 
      mysql_select_db("test") or die(mysql_error()); 

      $q1 = "SELECT * 
        FROM questions"; 
      $allQ = mysql_query($q1); 
      while($q = mysql_fetch_array($allQ)) 
      { 
       $i = $q['qID']; 

       echo '<div id="questions" style="background-color: blue;">'; 
       echo 'Question: '.$q['Question'].'<br><br>'; 
       echo 'posted by '.$q['userName'].'<br><br>'; 
       echo 'posted on '.$q['addDate'].'<br><br>'; 
       echo '</div>';?> 

       <input type="button" id="viewAnswers" name="viewAnswers" value="View Answers" onClick="changeDiv('Answers-q<?=$i?>', 'block');"> 
       <input type="button" id="addAnswer" name="addAnswer" value="Answer Question" onClick="changeDiv('newanswer-q<?=$i?>', 'block');"> 

       <div id="Answers-q<?=$i?>" class="answers"> 
        <? include("printAnswers.php"); // display all answers to question # i 
?> 
       </div> 

      <? echo '<div id="newanswer-q'.$i.'" class="answerform">'; 
         include("addAnswerForm.php"); // display add new answer to question # i 
       echo '</div>'; 
      } ?> 
      <br>-------------------------<br> 
      Go back to <a href="index.php">index.php</a> 
    </body> 
    </html> 

Change.php

<?php 

    mysql_connect('#', '#', '#') or die(mysql_error()); 

    mysql_select_db('test') or die(mysql_error()); 

    // Get values from form 
    $name=$_POST['name']; 

    $answer=$_POST['answer']; 

    $qID = $_POST['qID']; 

    // Insert data into mysql 

    $sql="INSERT INTO answers(Answer, userName, qID) 
      VALUES('$answer', '$name','$qID')"; 

    $result=mysql_query($sql); 

?> 

我一直停留在此的幾個小時,現在,沒有運氣這要歸功於我的兩個面向初級技能PHP和jQuery。

任何人都可以扔我一條生命線或什麼?

+1

一目瞭然......在這一行中<?包括( 「printAnswers.php」); //顯示問題#i的所有答案>'您正在評論關閉的php括號。您需要刪除評論,或者將右括號向下移動一行,以便它不在評論後面。 – Scott 2012-01-01 11:04:33

回答

0

數據的價值是什麼?在您的成功功能中嘗試console.log(data)。在我看來,change.php不會產生任何輸出,爲什麼數據必須等於零?

+0

即檢查是否爲假。無論如何,我現在只修復了這個問題,我得到的表單輸入插入到我的數據庫中的次數與沒有qID數據的while循環迭代次數相同。 (到目前爲止我的代碼在下面的條目中檢查...) – dmaz37 2012-01-02 07:09:09

+0

addAnswer()在哪裏調用? – user823255 2012-01-02 12:47:57

0

您的數據似乎是通過「GET」請求發送的。

變化TE AJAX數據對象是:

​​

如果你把它作爲一個字符串,你做的方式,它被附加到URL(成爲一個GET請求),如果你把它作爲一個它發佈的對象。

相關問題