2014-07-17 62 views
1

我正在生成一個網頁形式的SQL查詢,返回幾行。我將它們顯示在一個HTML表格中,其中1列是一個文本框。我循環每個新行的SQL結果,文本框的所有結果都具有相同的名稱。Python燒瓶 ​​- 從多個文本框接收來自窗體的數據

當點擊提交按鈕,我只接收第一個文本框中的一個值。

下面是使用

<form action="/commit_changes" method=post> 
    <ul class=naming> 
    <h2>{{ Overview }}</h2> 
    {% for entry in sensor_names %} 
     <li>{{ entry.sensor_add|safe }} 
     <input type="text" name="sensor_name" value={{ entry.sensor_name|safe }}> 
     <input type="checkbox" name="del" value="del"> 
     <li> <br> </li> 
    {% endfor %} 
</ul> 

<input type="submit" name="submit" value="Commit Changes"> 
</form> 

這裏的HTML IM是在瓶中的Python代碼:

@app.route('/commit_changes', methods=['GET', 'POST']) 
def commit_changes(): 
    print(request.form['sensor_name']) 
    return redirect('settings') 

林有猜測的數據發送回蟒蛇的唯一途徑是某種的JavaScript循環瀏覽文本框並一次發送一個。這是我卡住的地方:),希望有人能指出我的方向。 CD

+0

爲什麼不給每一個獨特的'name'?例如' dirn

回答

2

您必須爲input文本字段分配唯一的name屬性。

<form action="/commit_changes" method=post> 
     <ul class=naming> 
     <h2>{{ Overview }}</h2> 
     {% for entry in sensor_names %} 
      <li>{{ entry.sensor_add|safe }} 
      <input type="text" name="sensor_name{{entry.id}}" value={{ entry.sensor_name|safe }}> 
      <input type="checkbox" name="del" value="del"> 
      <li> <br> </li> 
     {% endfor %} 
    </ul> 

    <input type="submit" name="submit" value="Commit Changes"> 
    </form> 

如果你沒有id屬性爲sensor_names對象list.you可以嘗試sensor_name{{forloop.counter}},而不是sensor_name{{entry.id}}

相關問題