2011-01-01 19 views
0

私が作ろうとしているこの非常にシンプルなウェブサイトには、AJAX、PHP、jquery、およびmySQLがあります。データをデータベースに送信し、ajax \ jqueryを使用してそのデータをインデックスページに表示するテキスト領域があります。しかし何らかの理由で私はsubmitを押して、データはデータベースに送られますが、ページ上のそのデータを見るために自分でページを更新する必要があります。私は問題が私のAJAX JQueryやインデックスの間違いと関係していると仮定しています。また、テキスト領域にテキストを入力してsubmitを押すと、ページを更新するまでテキストがテキスト領域に残ります。ハハ、申し訳ありませんが、これがノーの質問なのですか?私は学びたいと思っています。本当にありがとうございましたコメントはデータベースに表示されますが、更新後のインデックスページにのみ表示されます

はここにAJAXである:ここでは

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
$(".submit").click(function() 
{ 
var comment = $("#comment").val(); 
var post_id = $("#post").val(); 
var dataString = '&comment=' + comment 
if(comment=='') 
{ 
alert('Fill something in please!'); 
} 
else 
{ 
$("#flash").show(); 
$("#flash").fadeIn(400).html('<img src="noworries.jpg" /> '); 
$.ajax({ 
type: "POST", 
url: "commentajax.php", 
data: dataString, 
cache: false, 
success: function(html){ 

$("ol#update").append(html); 
$("ol#update li:last").fadeIn("slow"); 
$("#flash").hide(); 
} 
}); 
}return false; 
}); }); 
</script> 

はインデックス\フォームエリアである:ここで

<body> 
<div id="container"><img src="banner.jpg" width="890" height="150" alt="title" /></div> 
<id="update" class="timeline"> 
<div id="flash"></div> 
<div id="container"> 
<form action="#" method="post"> 
<textarea name="comment" id="comment" cols="35" rows="4"></textarea><br /> 
<input name="submit" type="submit" class="submit" id="submit" value=" Submit Comment " /><br /> 
</form> 
</div> 
<id="update" class="timeline"> 
<?php 
include('config.php'); 
//$post_id value comes from the POSTS table 
$prefix="I'm happy when"; 
$sql=mysql_query("select * from comments order by com_id desc"); 
while($row=mysql_fetch_array($sql)) 
{ 
$comment=$row['com_dis']; 
?> 
<!--Displaying comments--> 
<div id="container"> 
<class="box"> 
<?php echo "$prefix $comment"; ?> 
</div> 
<?php 
} 
?> 

私commentajax.phpが

<?php 
include('config.php'); 
if($_POST) 
{ 
$comment=$_POST['comment']; 
$comment=mysql_real_escape_string($comment); 
mysql_query("INSERT INTO comments(com_id,com_dis) VALUES ('NULL', '$comment')"); 
} 

?> 

<li class="box"><br /> 
<?php echo $comment; ?> 
</li> 

である私はよ申し訳ありませんが、コードは多すぎますが、私は4日前にこれを学び始めました。これはおそらくウェブサイトが機能するまでの最後のバグの1つです。

+1

Firefoxとfirebugを取得することをお勧めします。実際のAjaxレスポンスを確認して、少しデバッグしてください。あなたの成功関数で 'alert(html);'を試してみましたか? – jondavidjohn

+0

情報を送信した後にテキストエリアの包含を削除するには、単に$( '#textarea-id')を使用してください。 – Cristy

答えて

0

これは何ですか? (あなたのコードからコピー)

<id="update" class="timeline"> 

<class="box"> 

あなたは、HTMLには存在しない、ここでタグを持っている、と私はそれがあなたの問題の根本であると考えています。

あなたはjQueryので

$("ol#update") 

を言うとき、あなたは

<ol id="update"></ol> 

...次のようになり、更新のidの順序付きリストタグを見つけようとしているが、そこあなたのページにこのようなタグはありません。おそらく<id="update" class="timeline"><ol id="update" class="timeline"></ol>に置き換える必要があります。これがあなたが探しているものなら、この答えの横にあるチェックマークを選択してください。ありがとう!

関連する問題