将Javascript变量传递到没有表单的模板工具包

时间:2014-06-18 21:12:08

标签: jquery catalyst template-toolkit

我想根据第一个菜单的当前选择动态更新第二个菜单,而无需用户提交表单。

我正在学习使用Catalyst Framework和Template Toolkit,这些菜单的数据存储在我使用TT指令访问的模型中。

我之前使用过JQuery的.change()方法来检索菜单的状态,并将其传递给CGI进行处理。

我可以使用Template Toolkit做类似的事情吗?如何将javascript变量传递给TT指令?其他解决方案?

1 个答案:

答案 0 :(得分:1)

是的,它可以完成,但重要的是要记住,一旦模板呈现为HTML,TT就不会再发挥作用了。听起来你之前使用CGI的经历会让你大部分时间都在那里:你的.change()事件必须触发一个Catalyst动作,为你的菜单返回一些JSON内容。

无论需要设置什么变量,都可以通过TT处理,例如: 未测试

$(document).ready(function(){
    $('#menu1').change(function(){
        var menuopt = $(this).val();
        $.ajax({
            url: "[% c.uri_for('/my/action') %]",
            data: "menu1=" + menuopt,
            dataType: "json",
            type: "GET",
            contentType: "application/json; charset=utf-8",
            success: function(data) {
                $.map(data, function(item) {
                    // create menu2 here
                }
            }
        });
    });
});