【发布时间】:2015-02-12 08:53:22
【问题描述】:
网页有表格和内表:
<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 获取键仅包含复选框键 [选择]。 我想获取 web 表内容并更新到数据库表。在 Flask 中我该怎么做??
【问题讨论】:
-
你为什么认为那些其他的价值观会存在?模板中唯一实际的表单元素是名称为“select”的复选框。
-
提交表单时,只有
input、select、textarea和button字段会发送到服务器。 -
@dirn 你的评论应该是一个答案。这很有帮助,而且信息不是到处都能找到。
标签: jquery python forms flask flask-wtforms