Drupal - я пытаюсь обновить вид после голосования с модулем Fivestar
У меня есть сайт с голосованием на узле главной страницы, и мне нужно обновлять представление на том же узле после каждого голосования. В настоящее время я использую следующий код в моей 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, поэтому я немного растерялся.
4 ответа
Как и многие другие вещи в Drupal, для этого уже может быть написан модуль. Обновление просмотров Ajax звучит очень многообещающе!
Я потратил бесчисленные часы на отладку представления, только чтобы понять, что у меня включено кэширование и я смотрю на старые результаты. Кэши для разных групп пользователей также являются отдельными. Поэтому вам может потребоваться вручную очистить кеш, чтобы обновить его, что может быть проблемой для Ajax.
Спасибо, Рэйб,
Похоже, это должно работать. Я попробовал несколько разных способов, но не смог...
Есть ли что-то очевидное, что я мог бы упустить из этого кода (в 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>
Большое спасибо за помощь
Идея, которую я могу реализовать в подобной ситуации, заключается в том, чтобы Ajax снова вызывал представление и отображал его на странице снова через JQuery при событии click.
возьмите этот пример, я думаю, это прояснит больше