我希望我提出正确的问题。基本上,我有python / tornado应用程序,我有一个问题填充我的HTML页面中的两个组合框。我试图填充第二个组合框取决于第一个组合框中的选定值。在我的python设置文件中,我有以下结构的json数据:
data = {'A':{
'1': {},
'2': {},
'3': {}
},
'B': {
'3': {},
'4': {}
}
}
第一个组合框包含值A和B,如果选择A,则第二个组合框应包含1,2和3 ...我尝试加载它:
{% block filter1 %}
<select id="filter1">
{% for key in settings.data %}
<option value="{{ key }}">{{key}}</option>
{% end %}
</select>
{% end %}
{% block filter2 %}
<select id="filter2">
{% for key in settings.data[$("#filter1").val()] %}
<option value="{{ key }}">{{key}}</option>
{% end %}
</select>
{% end %}
问题显然是settings.data [$(“#filter1”)。val()],它既是服务器端代码又是客户端代码,我不能像那样使用它。是否有“简单”的方式来获得这种行为?我可能错过了一些明显的东西,还是应该使用一些不同的方法?
答案 0 :(得分:0)
你是对的,这是问题
{%for settings.data [$(&#34;#filter1&#34;)。val()]%}
虽然没有办法解决这个问题。由于这将取决于客户端交互,因此处理该交互的代码必须是客户端。
这意味着您将需要使用javascript而不仅仅是服务器端代码(除非有生成此类型的javascript的帮助程序)。本质上,它将沿着脚本标记或引用,onchange事件以及某种人口逻辑,它们在页面上绘制元素或者某种json存储。