将JQuery数组传递给Flask变量

时间:2013-11-23 01:45:57

标签: javascript jquery flask

在SO上有一个类似的标题问题,但它与我的问题没有任何关系。

所以,我有一些我在函数中创建的JQuery数组。现在,我想在同一个函数中为那些JS数组设置一些烧瓶变量。我想这样做的原因是我然后设置元素的href并路由我的用户。

这是当前的JS代码:

JQuery的

//Filter Search
$(function() {
    $('#filter_search').click(function() {               
        var entities = JSON.parse(JSON.stringify($('#filterform').serializeObject())).checkboxes;  
        var data = JSON.parse(JSON.stringify($('#filterform').serializeObject())).checkboxeslower;
        if(typeof data == "string") { 
            data = $.makeArray(data); 
        }

        //Here I want to set Flask variables like {{entities}} and {{data}}

        //Then, I will call the next line
        $("#filter_search").attr('href', "{{ url_for('filter_search', entities='{0}', data='{1}'.format(entities, data) )}}");

        //Then, if all goes as planned, it will change the href and redirect the user to filtered_search 
    });
});

1 个答案:

答案 0 :(得分:1)

你不能按照你想要的方式去做,因为模板在服务器中运行,你的jQuery函数在客户端运行。

操作顺序如下:

  • 客户端请求页面
  • 服务器通过呈现模板生成响应。此时模板中的任何url_for()或其他Python代码都会运行
  • 客户端收到该页面并在其中执行Javascript
  • 您的jQuery函数最终会执行,但到那时更改url_for()的输出为时已晚。

要做到这一点,您需要做的就是在Javascript中构建您的网址。

请参阅this answer,我提出了两个类似问题的可能解决方案。