Я создаю стандартную систему комментариев к (например) сообщению, но мне трудно показывать их так, как я хочу. Я могу легко отобразить все комментарии одновременно, но сначала я хочу отобразить, например, 3 комментария, а затем кнопку, которая добавит 10 комментариев к каждому последующему щелчку.
Сначала я попытался создать событие AJAX при нажатии, которое бы загружало новую страницу php в div, где отображаются комментарии. Проблема в том, что на div можно ссылаться по классу или по идентификатору, и если на него ссылается класс, то новые комментарии заменят 3 уже показанных комментария (фактически делая отображение 3x10), и если div по идентификатору, тогда новые комментарии заменят первый из 3 уже показанных комментариев.
<?php
$followingposts = DB::query('SELECT posts.id, posts.body, posts.likes, posts.comments, posts.posted_at, users.`username`, fullname FROM users, posts, followers WHERE posts.user_id = followers.user_id AND users.id = posts.user_id AND follower_id = :userid ORDER BY posts.likes DESC;', array(':userid'=>$userid));
foreach ($followingposts as $post) {
?>
<div…
У меня есть это, чтобы отобразить первые 3 комментария в сообщениях, который отлично работает:
<?php
$commentsposts = DB::query('SELECT comments.id, comments.comment, comments.post_id, comments.likes, comments.comments, comments.posted_at, users.username, fullname
FROM comments, users
WHERE post_id = :postid
AND comments.user_id = users.id
ORDER BY comments.posted_at
DESC LIMIT 3;', array(':postid'=>$post['id']));
, а затем еще один цикл foreach для комментариев:
foreach ($commentsposts as $comments) {
?>
<div class="posts_comments" id="posts_comments_id">
...
, а затем функция AJAX (вызывается с кнопки):
function show_more_comments_click(elem) {
var post_id = $(elem).attr('value');
var commentCount = 3;
commentCount = commentCount + 10;
$('#posts_comments_id').load('./inc/load_comments.php', {
commentNewCount: commentCount
});
};
Это загружает это:
<?php
$commentNewCount = $_POST['commentNewCount'];
$commentsposts = DB::query("SELECT comments.id, comments.comment, comments.post_id, comments.likes, comments.comments, comments.posted_at, users.username, fullname FROM comments, users WHERE post_id = :postid AND comments.user_id = users.id ORDER BY comments.posted_at DESC LIMIT 0,$commentNewCount;", array(':postid'=>$post_id));
foreach ($commentsposts as $comments) {
?>
...
Но я не могу получить новые комментарии ниже уже показанных 3 комментариев.
Любые предложения о том, как этого добиться?
Заранее спасибо.