Ajax和PHP:在单页中处理多个帖子

时间:2018-01-28 11:18:17

标签: javascript php html ajax

我正在开发一个网页,其中来自数据库的多个帖子在一个页面中逐个显示,就像twitter或facebook一样。 我需要使用Ajax进行评论和喜欢。评论系统也应该嵌套。

我遇到的问题是每个帖子都有一个独特的post_id,我需要通过Ajax传输它以将注释插入到数据库中。

下面的HTML在PHP for循环中,用于从数据库获取帖子。所以我给了post_id作为每个评论元素的id以获得唯一的帖子评论。

<script>
                function addcomment(abc) {
                    var temp1 = abc;
                    var post_id = temp1.value; // POST ID
                    
                    var comment = document.getElementById(post_id).value;
                    $.ajax({
                        type: "POST",
                        url: "addcomment.php",
                        data: {
                            post_id:post_id,
                            comment:comment
                        },
                        success: function(response) {
                            document.getElementsByClassName(post_id).innerHTML = response;
                        }
                    });
                }
</script>
<div class="comment_section" id="comment_section">
    <textarea type="text" id="<?php echo($post_id); ?>" placeholder="comment Here..." value=""></textarea>
    <button id="comment_button" value="<?php echo ($post_id); ?>" onclick="return addcomment(this);">Comment</button>
    <br>
    <span class="<?php echo($post_id); ?>"></span>
</div>

addcomment.php看起来像这样:

<?php
include("connect.php");
$postid = $_POST['post_id'];
$comment = $_POST['comment'];

$sql1 = "INSERT INTO comments (name,comment) VALUES ('$postid','$comment')";
$result = $db->query($sql1);

$sql = "SELECT * FROM comments ORDER BY id DESC LIMIT 0,1";
$result1 = $db->query($sql);


while($row = $result1->fetch_assoc()) {
    
    $post = $row['name'];
    $comment_op = $row['comment'];
?>

    <?php echo $comment_op; ?>
    <br>
    <?php echo $post; ?>

    <?php } ?>

如何在单击“注释”按钮并将其存储在数据库中并使用AJAX将注释返回到注释区域下方时获取注释?

1 个答案:

答案 0 :(得分:0)

要首先显示特定帖子的评论,请创建评论部分并使用

<section id="comments-post_id"></section>

当您通过上面的ajax请求代码成功添加评论时,获取响应并创建评论html并附加到您的评论部分。

$("#comments-post_id").html($response);

确保您已在控制器或ajax文件中创建评论HTML,以获得响应。

并且用于渲染所有发布数据的用户在循环或递归函数中获取特定帖子的所有评论

需要更多帮助,请问:)