1

完璧に機能する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()) "); 
}

?>
4

0 に答える 0