完璧に機能するphp、jqueryコメント返信システムを作成しました。フェイスブックのように機能します。ユーザーがコメントを投稿すると、ユーザーは返信を追加できます。ユーザーがコメントを投稿するたびにページを更新せずにコメントを表示するために使用される Jquery。私はこれを行い、コメントで動作しますが、依存では動作しません。返信を表示するには、ページを更新する必要があります。これを修正する方法はありますか?
これは私のメインページ wall.php です:
<?php
<script>
$(document).ready(function(){
$("#comment_process").click(function(){
if($("#comment_text").val() != ""){
$.post("comments.php?action=post", { comment: $("#comment_text").val() }, function(data) {
$(".comments").html(data);
$("#comment_text").val("");
});
}
});
});
</script>
<div class="comment_container"> <div class="comment_form">
<textarea id="comment_text"/> </textarea>
</div></div>
<div class="comments"> <?php include_once("comments.php");?> </div>
?>
次のページは comments.php です:
<?php
require_once('core/init.php');
<script>
$(document).ready(function(){
$('.reply').keyup(function(e){
if(e.keyCode == 13){
var comments_id = $(this).attr('comments_id');
var reply = $(this).val();
$.post('reply.php', {"data_comments_id":comments_id, "data_reply":reply});
$('.reply').val('');
}
});
});
</script>
function getComments(){
$comments = "";
$sql = mysql_query("SELECT * FROM comments ORDER BY comment_date DESC ") or die (mysql_error());
if(mysql_num_rows($sql) == 0){
$comments = " <div class='each_comment'> There are no comments ...</div> ";
}
else
{
while ($row= mysql_fetch_assoc($sql)) {
$comments .= "Says : <div class='each_comment'> ".$row['comment_date']." ".$row['comment'];
$comments .= "<input type='text' class='reply' comments_id='{$row['comments_id']}' />";
echo "<div class='replies'>";
$reply_query = mysql_query("SELECT reply_id, reply, reply_date FROM comments_reply WHERE comments_id='{$row['comments_id']}' ");
while ($run_reply= mysql_fetch_assoc($reply_query)) {
$reply_id = $run_reply['reply_id'];
$reply = $run_reply['reply'];
$reply_date = $run_reply['reply_date'];
$comments .= "Replied: $reply_date $reply ";
echo"</div>";
$comments .= "</div>";
}
}
return $comments;
}
function postComments($comment){
$comment = mysql_real_escape_string(strip_tags($comment));
if(isset($comment) && empty($comment)){
$sql = mysql_query(" INSERT INTO `comments` (comment, comment_date) VALUES ('".$comment."', now()) ");
}
return getComments();
}
if((isset($_GET['action'])) && ($_GET['action'] == "post")) {
postComments($_POST['comment']);
}
echo getComments();
?>
そして最後に、これは私のreply.phpページです:
<?php
require_once('core/init.php');
$comments_id = $_POST['data_comments_id'];
$reply = $_POST['data_reply'];
if(isset($reply) && !empty($reply)){
mysql_query("INSERT INTO comments_reply VALUES ('', '$comments_id', '$reply', now()) ");
}
?>