所以我有一个带有表单的注释框(文本框和提交)。这会得到验证,然后通过ajax发送到php页面。
如果一切正常,则设置响应并继续页面。
但我希望div能够自我更新,以便您可以看到新的评论。
我不想要任何复杂的东西,比如追加等只是为了重新加载div(数据是从数据库中提取的)。
我过去曾经使用过它,但它不起作用:
$('#divid').load('page.php #divid'),
任何想法如何转换这个:
if (check == true) {
$.ajax({
type: "POST",
url: "process/addcomment.php",
data: $targetForm.serialize(),
dataType: "json",
success: function(response){
if (response.databaseSuccess)
$comment.after('<div class="error">Comment Added</div>');
else
$ckEditor.after('<div class="error">Something went wrong!</div>');
}
});
}
return false;
});
});
成功响应后刷新div?
如果我尝试将另一个$ return添加到我的php中,例如
} catch (Exception $e) {
$return['databaseException'] = $e->getMessage();
}
$return['databaseSuccess'] = $dbSuccess;
$return['responseHtml'] = 'Post Updated';
echo json_encode($return);
javascript不起作用,我只是在打印返回的情况下加载php页面..
感谢。
答案 0 :(得分:2)
如果你这样做
$("#divid").html( "Comment Added" )
它会在该div中设置html。
答案 1 :(得分:2)
答案 2 :(得分:0)
首先,您需要在服务器端使用一些PHP代码来生成div的HTML。然后使用此JavaScript
if (check == true) {
$.ajax({
type: ...,
url: ...,
data: ...,
dataType: "html"
})
.done(function(responseHtml) {
$("#yourDiv").html(responseHtml);
});
}
答案 3 :(得分:0)
我假设您在提交服务器(验证/卫生/等)后正在处理服务器上的评论。因此,我会将处理过的注释作为响应的一部分返回,然后将其插入HTML:
$.ajax({
type: "POST",
url: "process/addcomment.php",
data: $targetForm.serialize(),
dataType: "json",
success: function(response){
if (response.databaseSuccess) {
// if you have a designated empty div already, you can use .html()
$("#divid").html('<div class="success">'+response.commentText+'</div>');
// if you want to append it to an already existing list of comments, you can use .append()
$("#divid").append('<div class="success">'+response.commentText+'</div>');
}
else {
$ckEditor.after('<div class="error">Something went wrong!</div>');
}
}
});
当然,这需要您将response.commentText
添加到返回的JSON对象中。