В настоящее время я работаю над проектом системы комментариев. Я могу написать комментарий, сохранить его в своей базе данных, получить обратно и отобразить на веб-странице. Но затем у меня возникают проблемы, когда я включаю функцию ответа на комментарий поверх моей существующей системы комментариев. Проблема 1: я создал 2 новых интерактивных элемента под каждым из блоков комментариев, первый из них — «нет ответов», который показывает новые ответы. Во-вторых, «ответить сейчас», это текстовое поле, в котором пользователи могут ответить на этот комментарий. Однако, когда я нажимаю на любой из них, все интерактивные элементы открываются в остальных разделах комментариев, а не только тот, на который я нажимаю. Проблема 2: я могу ответить и отправить свой ответ в базу данных только в самом последнем комментарии div. Когда я пытаюсь ответить на старый комментарий, страница обновляется, и ничего не записывается в базу данных. Ниже мои разметки. Извините, если это сбивает с толку, но английский не мой родной язык. Мы будем признательны за любой вклад.
<div class="timeline">
<?php $stmt = $DB->query("CALL get_comment($aid)");
$results = $stmt->fetchAll(); $stmt->closeCursor();
foreach ($results as $info) {
?>
<div class="commentBox">
//The comment markup
<p class="allreplys">Replys</p> //This opens all replys
<p class="replyButton">Reply me</p> //This opens reply form
<form class="replySection">
//The reply form markup
</form>
<div class="replyTimeline">
<?php
$stmt = $DB->query<"CALL get_reply('$aid','$pid')");
$replys = $stmt->fetchAll(); $stmt->closeCursor();
foreach ($replys as $re) {
?>
<div class="replyBox>
//Reply Markups
</div>
<?php } ?> //Close of reply foreach
</div> //Close of replyTimeline
</div> //Close of commentBox
<?php } ?> //Close of comment foreach
</div> //Close of timeline
Ниже приведена моя разметка jQuery.
$(document).ready(function() {
$('.allreplys').click(function(event) {
$('.replyline').toggle();
});
$('.replyButton').click(function(event) {
$('.replySection').toggle();
});
});