在没有页面刷新的情况下回复第一个唯一评论

时间:2017-07-26 20:19:35

标签: javascript php jquery html

大家好日子,

我有以下HTML代码

<form method="post" action="blog_comment_post.php" id="post_blog_comment">
<input type="hidden" value="<?php echo $postid; ?>" name="blogid" id="blogid"/>
<textarea name="blog_comment" class="blog_comment_form" id="blog_comment" placeholder="Join the discussion"></textarea>
</form>

以及以下javascript编码实际上将评论发布到php文件并在页面上显示评论

<script type="text/javascript">
$(document).ready(function() {
    $("#post_blog_comment").keypress(function(evt) {
        if(evt.which == 13) {
            var commentform = $("#post_blog_comment");
            var blogid = $("#blogid").val();
            var comment = $("#blog_comment").val();
            //$.post("blog_comment_post.php", { blogid: blogid, comment: comment},
            //function(data) {

            var newmedia =`<div class="blog_comm_hold">
                <div class="user_comment_photo1">
               <img src='<?php echo $avatar; ?>' width='100%' height='100%' title='commenting as <?php echo $name; ?>'/>
                </div>
                <div class="blog_comment_">
                    <div class="blog_com_text">
                    ${comment}
                    </div>
                    </div>
                <br>
                <div class="reply_to_comm">
                     Reply
                     </div>
                    </div>`;

            commentform.after(newmedia);
            $('#post_blog_comment')[0].reset();
            //});
        }
    });
});
</script>

以下html代码表示实际回复发布的评论的表单

<form action="blog_comment_post.php" method="post" id="blog_comment_subform">
<div class="blog_subform_hold">
<div class="user_subcomment_photo">
    <img src='<?php echo $avatar; ?>' width='100%' height='100%' title='commenting as <?php echo $name; ?>'/>
</div>
<textarea placeholder="Reply to Comment" class="blog_comment_subform" name="blog_comment_sub" id="blog_comment_sub"></textarea>
</div>
</form>

最后,javscript编码实际发布回复评论并将该评论显示在我想回复的主评论下。

<script>
$(document).ready(function() {
    $("#blog_comment_subform").keypress(function(evt) {
        if(evt.which == 13) {
            var commentsub_form = $("#blog_comment_subform");
            var blog_subcmt = $("#blog_comment_sub").val();
            var commentid = 0;
            if(commentsub_form.parents(".blog_comm_hold").length > 0) {
                commentid = commentsub_form.closest(".blog_comm_hold").attr("data-Id");
            }
            console.log(commentid);
            console.log(blog_subcmt);

//$.post("blog_comment_post.php", { commentid: commentid, blog_subcmt: blog_subcmt},
//function(data) {
            var newsubmedia =`<div class="blog_subcomm_hold">
                <div class="user_subcomment_photo1">
               <img src='<?php echo $avatar; ?>' width='100%' height='100%' title='commenting as <?php echo $name; ?>'/>
                </div>
                <div class="blog_subcomment_">
                    <div class="blog_com_text">
                    ${blog_subcmt}
                    </div>
                    </div>
                    </div>`;

            commentsub_form.after(newsubmedia);
            $('#blog_comment_subform')[0].reset();
  //          });
        }
    });
});
</script>

以上所有代码都运行正常但我仍然有一个我最近想过的问题。

我有一个php文件,它从数据库生成所有注释,每个注释都有自己的php id。可以在下面的代码结构中看到,

<div class="blog_comm_hold" data-Id="<?php echo $cmt_id; ?>">
<div class="user_comment_photo1">
    <?php echo "
    <img src='$profile_pic2' width='100%' height='100%' title='commented as $name'>
    "; ?>
</div>
<div class="blog_comment_">
    <div class="blog_com_text">
        <?php echo $comment; ?>
    </div>
</div>
<br>
<div class="reply_to_comm">
    Reply
</div>
    </div>

对于每个注释,它都有自己唯一的ID,这是基于自动增量编号从数据库生成的。我将变量命名为$ cmt_id。上面的代码只是数据库中提取的注释的html输出。就像我上面说的那样,目前的配置运行良好。

然而,这是我真正的问题,我正在寻找解决方案。 如果该页面没有评论,我决定发表我的第一条评论。根据上面的javacript,评论将发布到php文件,然后显示在屏幕上。 现在,如果我决定立即回复该评论(我没有刷新页面以便不会从数据库中提取评论),基于上面的编码,你会发现答复评论将被发布到我有兴趣回复的评论。同样,这将由我为每个评论设置的$ cmt_id变量确定。 因为我没有刷新页面,所以我假设没有为$ cmt_id变量设置值。因此,我不知道我回复哪条评论,因为找不到$ cmt_id的值。我如何解决这个问题。

我知道如果我决定刷新页面,那么将从数据库中的变量$ cmt_id获取该值。但我不想刷新页面。我希望能够立即回复该评论,并且回复评论会被发布到php文件中,其中包含应该在变量$ cmt_id中的正确评论ID值。

非常感谢任何帮助。

0 个答案:

没有答案