我正在制作类似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);
以上代码仅适用于某种程度:
我做错了什么?
请帮忙