1

フロント ページ ノードで投票するサイトがあり、各投票後に同じノードのビューを更新する必要があります。現在、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

4 に答える 4

0

ビューのデバッグに数え切れないほどの時間を費やして、キャッシュが有効になっていて、古い結果を確認していることに気づきました。異なるユーザーグループのキャッシュも別々です。したがって、これを更新するには、手動でキャッシュをフラッシュする必要がある場合があります。これは、Ajaxでは難しい場合があります。

于 2012-06-05T19:57:04.800 に答える
0

この種の状況で私ができるアイデアは、Ajax でビューを再度呼び出し、クリック イベントで JQuery を介してページ内に再度レンダリングすることです。

この例を見てください。これでより明確になると思います

Drupal 6: ページ tpl ファイルでビュー 2 データをレンダリングする

于 2010-12-05T10:44:56.713 に答える
0

Drupal の多くのものと同様に、これを行うために既にモジュールが作成されている場合があります。Ajax ビューの更新は非常に有望に思えます。

于 2010-12-06T01:28:41.420 に答える
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>

助けてくれてどうもありがとう

于 2010-12-05T22:48:06.050 に答える