大家好日子,
我有以下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值。
非常感谢任何帮助。