2012-05-02 13 views
0

このPHPページは、フォームからの応答を取得しています(うまくいきたいです)。そして、データをテーブルに入力します。私は同じページにテーブルからの応答をエコーし​​ます。フォームのページでajaxを使用してフォームの値を送信し、ajaxの呼び出しが成功したらdivにデータをロードします。これはすべて、リフレッシュせずに行われているが、情報が送信されていないとそれだけで更新するページですPHPページがフォームを保存せず、出力を解析しています

私のPHPページ -

<?php 

$comment_name = $_POST["name"]; 
$comment_body = $_POST["comment"]; 
$film_no = $_POST["hidden"]; 
echo $comment_name; 
echo $comment_body; 
echo $film_no; 


// Connects to your Database 
mysql_connect("localhost", "****", "****") or die(mysql_error()); 
mysql_select_db("ignitet1_CheckFilm") or die(mysql_error()); 

$query1 = "INSERT INTO film_comments (comments_id,film_no,name,comment) 
VALUES ('','$film_no', '$comment_name','$comment_body')"; 
$runquery1 = mysql_query($query1)or die(mysql_error()); 


$getComments = mysql_query("SELECT * FROM film_comments where film_no = '$film_no'") 
       or die(mysql_error());  

       while($info = mysql_fetch_array($getComments)) 
       { 
       echo "<p>"; 
       echo $info['name']; 
       echo ":</p>"; 
       echo "<p>"; 
       echo $info['comment']; 
       echo "</p>"; 

       echo "<p>Comment posted on:"; 
       echo $info['timestamp'];  
       echo "</p>"; 
       echo "</div>";  
?> 

私のフォームとJavaScriptコード

<form id="ContactForm2" onsubmit="return submitForm()" >   
<div>            <input type="hidden" name="hidden" id="hidden" value="2"> 
<label for="name">Your Name</label> 
<input type="text" name="name" id="name" /> 
<label for="body">Comment Body</label>     
<textarea name="comment" id="comment" cols="20" rows="5"></textarea> 
<input type="submit" id="comment" class="button" value="Submit" /> 
<div class="form_result"> </div> 
</form> </div> 

<script> 

function submitForm() { 
    $.ajax({type:'POST', url: 'comment.php', data:$('#ContactForm2').serialize(), success: function(response) { 
     $('#ContactForm2').find('.form_result').html(response); 
    }}); 


} 

私が試したすべてはうまくいかないようです。助けていただければ幸いです! :)

+1

PHPで$ _POSTを出力し、$( '#ContactForm2')。serialize()の結果を出力して、正しいデータを送信しているかどうかを知ることができます。 – GillesC

+0

あなたの関数はおそらくマークアップの上にある必要があり、 "onsubmit =" submit "(" ")はあなたの関数が何も返さないので、 – GillesC

+0

あなたはwhileループを閉じていません。ここでPHPコードを追加している間は間違いですか? –

答えて

0

これは私のためにうまく動作するPHPでこれを試してください。

<html> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script> 
$(document).ready(function(){ 
    $('#sub').click(function(){ 
     $.ajax({type:'POST', url: 'comment.php', data:$('#ContactForm2').serialize(), success: function(response) { 
     $('#ContactForm2').find('.form_result').html(response); 
    }}); 
    }); 
}) 

    </script> 
    <body> 
     <div> 
     <form id="ContactForm2"> >              <input type="hidden" name="hidden" id="hidden" value="2"> 
<label for="name">Your Name</label> 
<input type="text" name="name" id="name" /> 
<label for="comment">Comment Body</label>     
<textarea name="comment" id="comment" cols="20" rows="5"></textarea> 
<input type="button" id="sub" class="button" value="Submit" /> 
<div class="form_result"> </div> 
</form> </div> 


    </body> 
</html> 
関連する問題