使用Javascript加载.tpl显示错误

时间:2013-06-15 23:02:11

标签: javascript jquery smarty

我试图在点击按钮时使用Javascript加载一些代码。问题是某些代码只是显示而不是执行。

这是我正在尝试加载的文件reload.tpl:

<div class="online-players">
  {% for player in players_online %}
  <div class="online-player-heads">
    <a href="?page=player&name={{ player.getName }}">
        {{ player.getPlayerHead(64, 'img-polaroid', true)|raw }}
    </a>
  </div>
{% else %}
  <div class='force-center'><em>{{ 'no_players_online'|trans }}</em></div>
{% endfor %}
</div>

我用它来加载代码:

<script> 
    $(document).ready(function() {
        $('#button2').click(function() {
            $('.online-players').fadeOut('slow', function() {
                $(this).load('templates/default/views/reload.tpl', function() {
                    $(this).fadeIn("slow");
                });
            });
        });
    });
</script>

预期:

http://i.stack.imgur.com/CRMGn.png

实际发生了什么:

http://i.stack.imgur.com/8UvG7.png

任何人都知道为什么这样做?当我不想通过脚本加载时,它工作得很好。但是一旦我尝试.load,它就不会显示正确.. 救命? :)

2 个答案:

答案 0 :(得分:1)

如果您没有亲自发现,这就是您需要做的事情:

将jquery加载的目标页面更改为php文件(为了正确的服务器端句柄):

<script> 
$(document).ready(function() {
    $('#button2').click(function() {
        $('.online-players').fadeOut('slow', function() {
            $(this).load('reload.php', function() {
                $(this).fadeIn("slow");
            });
        });
    });
});
</script>

在reload.php文件中:

require_once("./libs/Smarty.class.php");
$smarty = new Smarty;
$smarty->display("templates/default/views/reload.tpl");

我希望这会对你有所帮助。 的问候,

答案 1 :(得分:0)

smarty是PHP的服务器端模板引擎。您可以使用AJAX来调用文件,让php / smarty处理转换为html或制作文件的副本并将其转换为javascript,以便它可以与浏览器一起使用。