【发布时间】:2014-04-01 16:49:16
【问题描述】:
这是一种特殊情况,但我在一个 yii 应用程序中有一个简单的 .php 视图,它根据传递给它的参数显示一些 html。我这样称呼它:
echo $this->renderPartial('/comments/view', array('comment'=>$comment));
我这样做了好几次,因为页面中可能有多个评论。
这很好用,但是,一旦有人发表新评论,我想在页面上动态显示它而不重新加载它。所以这里来了 AJAX 发挥它的魔力,并在完成后调用一个刷新函数,这需要刷新显示 cmets 的 div 的内容:
function refreshComments()
{
var content = $('#users_posts').html();
var newContent = "<?php $this->renderPartial('/comments/view', array('comment'=>Comments::getLatestComment($model->id))); ?>";
$('#users_posts').html(newContent + content);
}
显然,我试图用所需的 html 填充变量 newContent 的部分失败了。这部分工作没有问题:
Comments::getLatestComment($model->id)
因为我能够从数据库中新插入的评论中获取信息。问题是显示在屏幕上,因为我必须用大量的 html 来包装它,这也取决于 getLatestComment 返回的值。视图做得很好,但是,如何从中获取结果并将其填充到 JavaScript 变量中,以便正确更新 div 的 HTML?
或者以这种方式提出的其他建议也非常受欢迎!
【问题讨论】:
-
您的代码做错了很多事情。同样关于 Ajax 实现,使用 JSON 将数据发送到视图,并使用 Jquery/Mootools 等库将数据附加到视图中。在下面查看@parry 的答案。
标签: javascript php jquery html yii