2012-01-01 5 views
2

目標:jQueryとMySQLを使用して同じページに送信して表示するには?

は、Q(PHP、JavaScriptとjQueryのを使用して)& Aスクリプトを作成します。質問をして答えを提出することができます質問に述べています。 ユーザーが新しい回答を送信した場合、その回答がデータベースに挿入され、回答を含む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

一目で...この行で '<? include( "printAnswers.php"); //すべての答えを#i質問に表示しますか?> 'あなたは閉じているPHPブラケットをコメントアウトしています。コメントを削除するか、閉じ括弧をコメントの後ろに移動する必要があります。 – Scott

答えて

0

データの価値は何ですか?あなたの成功関数にconsole.log(data)を試してください。私にはchange.phpが出力を生成しないように見えますが、データがゼロになるのはなぜですか?

+0

それはfalseかどうかをチェックすることです。いずれにしても、私はこの問題を解決したばかりですが、今度はフォーム入力をデータベースに挿入する回数はqidデータのないwhileループ反復回数になります。 (これまでのコードでは以下の項目をチェックしてください...) – dmaz37

+0

addAnswer()はどこに呼び出されていますか? – user823255

0

あなたのデータは「GET」リクエストによって送信されたようです。これに

変更TE AJAXデータオブジェクト:

​​

あなたは文字列として、あなたがやった方法でそれを渡すと、あなたのようにそれを渡した場合、それは、URL(GETリクエストとなる)に付加されますそれが投稿されるオブジェクト。

関連する問題