我有一个在首页节点上投票的网站,我需要在每次投票后更新同一节点上的视图。我目前在page.tpl.php中使用以下代码
<script type="text/javascript">
function fivestarResult(voteResult) {
$('div#fivestar-summary-'+voteResult.vote.id).html(voteResult.result.summary);
window.location = "http://www.mydomain.com/";
};
</script>
有没有办法直接刷新视图而不是刷新整个页面?我在javascript方面不是很好,所以我有点失落。
答案 0 :(得分:0)
我可能在这种情况下做的一个想法是Ajax再次调用视图并在点击事件中通过JQuery再次在页面内呈现它。
举个例子,我想这会澄清更多
答案 1 :(得分:0)
谢谢拉贝,
这听起来应该有效。我尝试了几种不同的方法,但无法得到它......
这段代码中是否有明显的遗漏(在page.tpl.php中)?
<script type="text/javascript">
function fivestarResult(voteResult) {
$('div#fivestar-summary-'+voteResult.vote.id).html(voteResult.result.summary);
<?php
$name = "comparison_view";
print views_embed_view($name, $display_id = 'default');
?>
};
</script>
非常感谢您的帮助
答案 2 :(得分:0)
与Drupal中的许多内容一样,可能已经编写了一个模块来执行此操作。 Ajax views refresh听起来很有希望!
答案 3 :(得分:0)
我花了无数个小时调试视图,但发现我已经启用了缓存,并且正在查看旧结果。不同用户组的缓存也是分开的。因此,您可能需要手动刷新缓存以使其更新,这可能是Ajax的挑战。