实时评论系统

时间:2017-05-26 19:49:40

标签: javascript php

我正在制作类似Facebook和其他社交媒体平台的新闻。为此,我正在为页面上的每个帖子制作一个评论部分。我正在尝试使评论部分实时(实时),以便在发布评论时,页面不会刷新。

我知道评论系统有效,因为我做了没有实时功能的测试(没有使用任何形式的javascript代码)。

以下是我的代码简介....我只根据我的问题发布了我认为必要的内容。

  function getposts ()
  {
  global $con;

  $getposts = "SELECT * FROM posts";
  if ($result = $con->query($getposts)) {


    while ($row1 = $result->fetch_assoc()) {

        $postid = $row1['post_id'];

?>
    <form action='comments_ins.php' method='post' id='reply'>
            <input type="hidden" value="<?php echo $postid;?>" 
            name="postid"/>
            <textarea name="comment" id="comment" class="cmt_form" 
           placeholder="Type a commmment here..."></textarea>
           <input type='submit' name='reply' value='Comment'/>
     </form>

  <?php

     }
   }
  }
  ?>

另外,上面的脚本我存储在一个给出了函数名称的文件中。文件是php文件。 以下代码存储在另一个名为home的文件中,其中包含函数文件:

   <?php include("functions.php"); ?>

   <?php getposts ();?>

因此,如前所述,上述代码效果很好。现在,我略微修改了代码,试图让评论系统成为实时。 以下是更改后的代码:

  function getposts ()
  {
  global $con;

  $getposts = "SELECT * FROM posts";
  if ($result = $con->query($getposts)) {


    while ($row1 = $result->fetch_assoc()) {

        $postid = $row1['post_id'];

?>
    <form method='post' id='reply'>
            <input type="hidden" value="<?php echo $postid;?>" 
            name="postid" id="postid" />
            <textarea name="comment" id="comment" class="cmt_form" 
           placeholder="Type a commmment here..."></textarea>
           <input type='submit' name='reply' value='Comment'/>
     </form>

  <?php

     }
   }
  }
  ?>


  //in addition to the java to make it real time

  <script type="text/javascript">
  $(document).ready(function() {
  $(".cmt_form").keypress(function(evt) {
    if(evt.which == 13) {
            var postid = $("#postid").val();
            var body = $("#comment").val();

            $.post("comments_ins.php", { postid: postid, comment: body},
    function(data) {
     $('.log').html(data);
     $('#reply')[0].reset();
     });
     }
     });
     });
    </script>

以上java我包含在相同的functions.php文件中,但在php标签之外,不在任何循环中。主文件是相同的..没有变化。

最后,以下代码是将注释插入数据库的php文件。在以前的代码上看到的文件名:comments_ins.php

  $comment1 = ($_POST['comment']);
  $post_id = $_POST['postid'];
  global $userId;
  $insert1 = "insert into comments (post_id,user_id,comment,date) values 
  ('$post_id','$userId','$comment1',NOW())";
  $run1 = mysqli_query($con,$insert1);

以上代码仅适用于某种程度:

  • 它没有将正确的postid值发布到数据库。虽然我评论了另一个具有不同身份证号码的帖子,但它只发布了postid 1。
  • 此外,它没有将注释输入数据库中的注释字段。我看到一个空的空间..没有文字。
  • 最后,在发表评论后输出是一些疯狂的输出:一些奇怪的数字和一些废话。

我做错了什么?

请帮忙

0 个答案:

没有答案