2015-02-12 47 views
0

网页都有一个形式和内部表:不能使用request.form.get获得烧瓶形式表内容

<form method="post" action="{{ url_for('data.dataupdate',username=current_user.name,tablename=ddatatablename) }}"> 
<table class="table table-striped" id="table1" name="datatable"> 
<thead> 
<tr> 
<td bgcolor="#dcdcdc"><input type=checkbox name=select_all value="all" onclick="CheckAll(this.form)"></td> 
</tr> 
</thead> 
{% if ddatas_perpage %} 
<tbody name="datas"> 
{% for item in ddatas_perpage %} 
<tr name="table"> 
<td><input type=checkbox name=select value={{ item.sn }} ></td> 
<td class="text-info" name="tabletd" value={{ item[col] }} ><textarea>{{ item[col] }}</textarea></td> 

的view_function是:

@data.route('/datas/edit/<username>/<tablename>/updatesuccess',methods=['GET','POST']) 
def dataupdate(username,tablename): 
    selected = request.form.getlist("select") 
    ttt = request.form.getlist('datatable') 
    tttt = request.form.get('datatable') 
    ttttt = request.form.getlist('td') 
    tttttt = request.form.get('tablename') 
    datas = request.form.get("datas") 
    tables = request.form.get("table") 
    tabletds = request.args.get("tabletd") 

    f = request.form 
    flash("#######################",f.keys()) 
    for key in f.keys(): 
     flash(key) 
     for value in f.getlist(key): 
      flash(key+":"+value) 
    flash(ttt) 
    flash(tttt) 
    flash(ttttt) 
    flash('############',tttttt) 
    flash(selected) 
    flash(datas) 
    flash(tables) 
    flash(tabletds) 
    cases = UserCase.query.filter_by(username=username).all() 
    session['loginname']=username 
    if cases is not None: 
     return render_template('data/usercase.html', ccases=cases) 

当我提交表单,只有复选框可以使用request.form.getlist(“select”)获取值,但表中的其他内容为None。

为什么它没有得到表格内容,但复选框? 我用户request.form.get或者request.args.get获得相同的结果,特别是使用request.form获得的键只包含checkbox键[select]。 我想获取Web表格的内容并更新到数据库表格。如何在Flask中做?

+0

你为什么会认为这些其他值会存在?您在模板中唯一的实际表单元素是名称为“select”的复选框。 – 2015-02-12 09:16:52

+2

当您提交表单时,只有'input','select','textarea'和'button'字段被发送到服务器。 – dirn 2015-02-12 13:43:00

+0

@dirn您的评论应该作出回答。这是非常有用的信息并没有到处找到。 – 2017-08-08 12:01:08

回答

1

似乎除了复选框你没有任何其他形式的输入你给name属性。如果您发现自己希望从textarea获取值,请尝试在其上指定名称。

+1

谢谢,那个答案对我来说非常重要,就像上帝的向导 – kaku21 2015-03-10 02:07:53