2014-07-17 29 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}}

相关问题