【问题标题】:Ajax And PHP : Handling Multiple Posts in A Single PageAjax 和 PHP:在一个页面中处理多个帖子
【发布时间】:2018-01-28 11:18:16
【问题描述】:

我正在开发一个网页,其中数据库中的多个帖子在单个页面中一一显示,就像 twitter 或 facebook。 我需要将 Ajax 用于 cmets 和 likes。评论系统也应该嵌套。

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

下面的 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 返回评论区域下方的评论?

【问题讨论】:

  • 是的,我知道。我会在执行前准备好查询。但我有一个很大的问题,想听听你的意见。
  • 你应该把 post_id 放在像
  • 那么如果你使用的是mysqli,你可能需要关闭前一个语句,然后再执行下一个
  • @Ezekiel 显示评论?还是从 TextArea 获取?
  • 我不太明白您是如何在发布评论之前获得 id 的?

标签: javascript php html ajax


【解决方案1】:

为了在特定帖子上显示 cmets,首先您创建评论部分并使用

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

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

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

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

并用于在循环或递归函数中呈现所有帖子数据用户以获取特定帖子的所有 cmets

如果需要更多帮助,请随时询问:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2014-07-20
    • 2014-12-02
    • 2019-08-22
    相关资源
    最近更新 更多