gpt4 book ai didi

javascript - 选择 flask 后不显示下拉选择的值?

转载 作者:行者123 更新时间:2023-12-02 18:05:45 25 4
gpt4 key购买 nike

如何使用 HTML <select>flask - render_template 预填充的下拉列表.

这是 <select>从 Flask-jinja2 预填充的下拉列表。

<div>
<select class="test-default" id="testTime">
{% for option in options %}
<option value={{ option }}>{{ option }}</option>
{% endfor %}
</select>
</div>

test.html中的脚本,

function fetch_test_data(){
let test = $("#testTime").val();
axios({
method:"get",
url:"/test",
params: {
test
}
}).then(function (response) {
$(document.body).html(response.data)
});
}

test.py文件 - 带有应用程序路线和 options用于下拉菜单。

@app.route('/test', methods=["GET"])
@login_required
def transactions_view():
options = ["0","7","14","30"]

return render_template("test.html", options=options)

上面的例子中如何使用selected属性来显示所选值。

当选择一个值时,正确的值返回到 flask 并渲染回来。但是下拉可视化/列表显示第一个值而不是所选值?

我尝试过的:
我可以获得 dropdown select用于定义的下拉列表。

defined-dropdown - 供引用

<div>
<select class="test-default" id="testTime">
<option value=0>today</option>
<option value=7>week</option>
<option value=14>fortnight</option>
<option value=30>month</option>
</select>
</div>

{{ time }}

我可以使用上面的下拉菜单来实现:

<div>
<select class="test-default" id="testTime">
<option value=0 {% if time == 0 %} selected="selected" {% endif %}>today</option>
<option value=7 {% if time == 7 %} selected="selected" {% endif %}>week</option>
<option value=14 {% if time == 14 %} selected="selected" {% endif %}>fortnight</option>
<option value=30 {% if time == 30 %} selected="selected" {% endif %}>month</option>
</select>
</div>

哪里{{ time }}从 test.py 返回

@app.route('/test', methods=["GET"])
@login_required
def transactions_view():
time = (request.args.get("test"))
return render_template("test.html", time=time)

最佳答案

您必须将 transactions_view() 中选定的时间传递给模板,并在渲染过程中测试每个选项的值。

首先,在 test.py 中,您必须像这样修改 transactions_view():

@app.route('/test', methods=["GET"])
@login_required
def transactions_view():
options = (
(0, 'today'),
(7, 'week'),
(14, 'fortnight'),
(30, 'month'),
)
default_time = 0
selected_time = int(request.args.get('time', default_time))

return render_template("test.html", options=options, selected_time=selected_time)

这里我们将 options 变量作为键标签对的元组,selected_time 变量保存来自 GET 的所选时间的值code> 请求或默认值。这两个变量都已传递给 render_template 函数,因此我们可以在模板文件中访问它们。

test.html 模板文件中,您必须修改 for 循环,如下所示:

<div>
<select class="test-default" id="testTime">
{% for time, label in options %}
<option value="{{ time }}" {% if time == selected_time %}selected="selected"{% endif %}>{{ label }}</option>
{% endfor %}
</select>
</div>

这里我们测试每个选项的time值是否是选定的时间,并相应地设置selected属性。

关于javascript - 选择 flask 后不显示下拉选择的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60272839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com