0

所以我有一个带有表单的评论框(文本框并提交)。这得到验证,然后通过 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?

如果我尝试向我的 php 添加另一个 $return 例如

} catch (Exception $e) {
$return['databaseException'] = $e->getMessage();
}

$return['databaseSuccess'] = $dbSuccess;
$return['responseHtml'] = 'Post Updated';

echo json_encode($return);

javascript 不工作,我只是得到打印返回的 php 页面加载..

谢谢。

4

4 回答 4

2

如果你这样做

$("#divid").html( "Comment Added" )

它将在该 div 中设置 html。

于 2013-09-13T19:53:05.473 回答
2

我认为你的意思是这样做

$('#divid').load('page.php');

查看 jQuery .load文档

于 2013-09-13T19:56:12.207 回答
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 对象。

于 2013-09-13T20:13:47.137 回答
0

首先,您需要在服务器端生成 div 的 HTML 的一些 PHP 代码。然后使用这个 JavaScript

if (check == true) {
  $.ajax({
    type: ...,
    url: ...,
    data: ...,
    dataType: "html"
  })
    .done(function(responseHtml) {
      $("#yourDiv").html(responseHtml);
    });
}
于 2013-09-13T19:57:51.370 回答