該頁面有評論和回復,類似于Youtube。發布新評論作業正常,但在回復評論時失敗。
我console.log在目標 中進行了測驗,textarea如果您只回復一條評論,它可以正常作業,但是如果我嘗試切換要回復的評論,則該textarea值為空。除了第一個評論回復textarea,不知何故,一個總是有效的。
我是否需要以不同的方式重置之前提交的表單,還是我遺漏了其他東西?
$(document).ready(function() {
var id = $('#post_id').val();
$.ajax({
url: 'search.php',
type: 'POST',
data: {
allcomments: id
},
dataType: "html",
error: function() {
alert("Jokin meni vikaan");
},
success: function(data) {
$('.discussion-section').append(data);
tinymce.remove();
initializeTinyMce('textarea');
}
});
$('.discussion-section').on('submit', '.form-reply, #comment', function(e) {
e.preventDefault();
var comment = $('#topic').val();
var post_id = $('#post_id').val();
var comment_id = $(this).find('#comment_id').val();
if (!isReply) {
var comment = $('#topic').val();
} else {
var comment = $(this).find('#reply-topic').val();
}
$.ajax({
url: "search.php",
method: "POST",
data: {
comment: comment,
id: post_id,
comment_id: comment_id,
isReply: isReply
},
dataType: "text",
success: function(message) {
message = $.parseJSON(message);
$('.error-txt').stop().show();
$('.error-txt').html(message.output);
$('.error-txt').stop().delay(1000).fadeOut("fast");
$('.comment-amount').html(message.amount ' kommenttia');
if (!isReply) {
$('.post-hr').after(function() {
if ('.discussion-section:contains(".empty-room")') {
$('.empty-room').remove();
}
$("#comment")[0].reset();
return message.newComment;
});
} else {
$(".reply").text("Answer");
$(".form-reply").hide();
$(e.target).next().append(message.newComment);
}
tinymce.remove();
initializeTinyMce('textarea');
},
error: function(message) {
alert('Something went wrong');
}
});
$(this)[0].reset();
$(".reply").text("Answer");
$(".form-reply").hide();
});
這是動態加載到頁面的資料
if(isset($_POST['allcomments'])) {
$stmt = $user->connect()->prepare("SELECT * FROM comments WHERE post_id = ? ORDER BY date DESC;");
if(!$stmt->execute(array($_POST['allcomments']))){
$stmt = null;
$output = "<div class='error-texti'><p>STMT FAILED</p></div>";
exit();
}
$allComments = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($allComments as $key => $userPost) {
$mysqldate = strtotime($userPost['date']);
$phpdate = date('Y/m/d G:i A', $mysqldate);
echo "<div class='discussion-wrapper'>
<div class='discussion'>
<div class='date'>
<p class='username'>" . $userPost['name'] . "</p>
<p>" . $phpdate . "</p>
</div>
<div class='bodytext'><p>" . $userPost['content'] . "</p> </div>
</div>
<button class='reply' data-id='". $userPost['comment_id'] ."'>Answer</button>
<form class='form-reply ". $userPost['comment_id'] ."' method='POST' id='reply' style='display: none; width: 80%; padding-top: 10px; padding-left: 10px;'>
<input type='hidden' id='post_id' value='". $_POST['allcomments'] ."'>
<input type='hidden' id='comment_id' value='". $userPost['comment_id'] ."'>
<textarea class='tinymce' name='content' id='reply-topic' placeholder='Kerro ajatuksistasi...' rows='7' style='z-index: 99999;'></textarea>
<div class='post-comment' style='align-self: flex-end;'>
<input type='submit' name='post' onclick='isReply = true;' onvalue='Vastaa' id='reply'>
</div>
</form>
<div class='discussion-reply'>
<div class='date'>
<p class='username'></p>
<p></p>
</div>
<div class='bodytext'> </div>
</div>
</div>";
}
}
uj5u.com熱心網友回復:
更新
通過為評論和回復制作 2 個 ajax 函式而不是 1 個來修復它。不知道為什么它起作用了,哈哈。
uj5u.com熱心網友回復:
也許使用 $(' /* text area / ').val(' / new value */ ') ?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/395527.html
下一篇:如何使用php處理瘋狂的日期輸入
