我尝试在将div中的内容保存到数据库后替换它而不重新加载页面。当我单击保存按钮时,编辑窗口消失,但是在我重新加载页面之前,帖子不会更新。每篇文章都是通过以下模板构建的,并且有多个帖子。
var formatPost = function(d) {
var s = '';
s = '<div class="postWrapper" data-id="' + d.post_id + '"><h2 class="postHeading">' + d.title + '</h2>';
s += '<div class="postBody"> <p>' + d.body + '</p> </div>';
s += '<p> Posted on: ' + d.date + '</p>';
s += '<div class="btn editButton">Edit Post</div>'
s += '<div class="btn deleteButton">Delete</div>';
s += '</div>'
return s;
};
按下编辑按钮时运行以下功能
function(data) {
var editableText = '<div class="editPostContainer" data-id="' + data.post_id + '">'
editableText += '<input type="text" class="editPostHeader" value="' + data.title + '">';
editableText += '<textarea class="editPostText">' + data.body + '</textarea>';
editableText += '<div class="btn saveEditButton">Save</div>';
editableText += '<div class="btn cancelButton">Cancel</div>';
editableText += '</div>';
$(self).parent().append(editableText);
}
当我点击代码运行后点击保存按钮
$.post(settings.server, {
saveID: $(this).parent().data('id'),
title: $('.editPostHeader').val(),
body: $('.editPostText').val()
}, function(data){
$(this).parent().siblings('.postHeading').text(data.title);
$(this).parent().siblings('.postBody').text(data.body);
});
最后是在这期间处理数据库的PHP。
function save_post($id, $title, $body)
{
global $link;
$sql = "UPDATE post SET title= '$title',body= '$body' WHERE post_id= $id";
mysqli_query($link, $sql);
$sql = 'SELECT * FROM post WHERE id=' . $id;
$result = mysqli_query($link, $sql);
$saveResult = mysqli_fetch_assoc($result);
print json_encode($saveResult);
}