我需要一些帮助。我正在使用flask,并且我有一个带有一堆复选框的HTML页面。它们按照选项1,选项2和选项3的顺序排列,然后在选项下有多个复选框需要检查。我试图跟踪已选中所有框的选项,然后将该信息存储到列表中。
目前,我的逻辑是使用Jinja2在HTML文件中使用一些for循环,并尝试以诸如 name =“ {{getboxitem}}” 的形式设置一些唯一的名称标签。仅在option1上垂直工作,但是如果我在option2和option3中选中了一个框,它就无法跟踪。有什么建议可以解决这个问题。
另外,与此有关的另一件奇怪的事情是,当我通过request进行请求时,我可以清楚地看到我的复选框表单的名称为“ option2checkbox1”,但是在python路由中。将该值设置为无,就好像该值不存在一样。
Example:
Option1 Option2 Option3
------------- -------------- -----------
[] Not Checked []not checked [*]Checked
[*] Checked [*]not checked [*]Checked
@app.route('/performance_features_ixia', methods=['GET', 'POST'])
def performance_features_ixia():
option2checkbox1 = request.form.get('option2checkbox1')
print('option2checkbox1 is {}'.format(option2checkbox1))
这是我的HTML文件
{% for items in rtr_intfs %}
{% set getboxitem = items + 'checkbox1' %}
<div class="col-sm-3">
{%if loop.index > 4 %}
<br><br>
{% endif %}
<p>{{items}}</p>
<hr style="border: 2px solid#5b9aa0;" />
<div id="checkboxes">
<form role="form" action="{{ url_for('performance_features_ixia') }}" name='checkboxform' method="POST" >
<ul name="listformcheckbox">
<li>
<div class="checkbox form-check">
<input type="checkbox" name="{{getboxitem}}" id='myCheck' class="check ingress-check form-check-input"> check box option
</label>
</div>
</li>
</ul>
{% if loop.index == 1%}
<br>
<button class="btn btn-info btn-lg" type="submit">Submit</button>
{% endif %}
</form>
</div>
</div>
{% endfor %}
答案 0 :(得分:1)
答案是在表单下移动for循环。调试后,我意识到我正在创建三个表单,看起来就像我执行request.form.get时所要查找的表单一样。
{% for items in rtr_intfs %}
<div class="col-sm-3">
{%if loop.index > 4 %}
<br><br>
{% endif %}
<p>{{items}}</p>
<hr style="border: 2px solid#5b9aa0;" />
<div id="checkboxes">
<form role="form" action="{{ url_for('performance_features_ixia') }}"
name='checkboxform' method="POST" >
{% set getboxitem = items + 'checkbox1' %}
<ul name="listformcheckbox">
<li>
<div class="checkbox form-check">
<input type="checkbox" name="{{getboxitem}}" id='myCheck' class="check ingress-check form-check-input"> check box option
</label>
</div>
</li>
</ul>
{% if loop.index == 1%}
<br>
<button class="btn btn-info btn-lg" type="submit">Submit</button>
{% endif %}
{% endfor %}
</form>
</div>
</div>