簡體   English   中英

使用flask,jinja2將html復選框值存儲到列表中

[英]store html checkbox value into list using flask, jinja2

我需要一些幫助。 我正在使用 Flask 並且我有一個帶有一堆復選框的 HTML 頁面。 它們按選項 1、選項 2 和選項 3 排序,然后在選項下,有許多框需要檢查。 我正在嘗試跟蹤所有框已針對哪個選項進行了檢查,並將該信息存儲到列表中。

目前我的邏輯是使用 Jinja2 在 HTML 文件中使用一些 for 循環,並嘗試在表單中設置一些唯一的名稱標簽,例如name="{{getboxitem}}"但是我的邏輯只在 option1 上垂直工作,但它不能跟蹤我是否在選項 2 和選項 3 中選中了一個框。 是否有任何建議可以幫助解決此問題。

另外,關於此的另一件奇怪的事情是我可以清楚地看到我的復選框表單的名稱是“option2checkbox1”,但是當我通過請求請求時,在python路由中。 將其設置設置為 none,就好像該值不存在一樣。

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 %}

答案是在表單下移動 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM