简而言之,我正在使用Ajax从SelectField(WTFORMS)发送数据来动态更新其他SelectField选择。
在两种情况下,我都尝试将数据作为默认值或json发送失败。
这是我尝试过的最终代码:
在jinja2模板中:
[...]
<th width="20%">{{ studsubreg.sub }}</th>
[...]
<script type="text/javascript" src="/static/js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("select#studsubreg-sub").change(function() {
var subid = $(this).find('option:selected').text();
{#var subid=$(this).val();#}
$.ajax({
type: 'GET',
data: { 'sid': subid},
url: "{{ url_for('getcourse') }}",
contentType: 'application/json;charset=UTF-8',
success: function(response) {
}
});
});
});
</script>
在Flask中:(仅用于测试输出是否正常工作)
@app.route('/getcourse', methods=['GET'])
@login_required
def getcourse():
subid = request.json['sid']
print(subid)
我总是收到错误400错误的请求 我只想获取subid值,以便可以返回结果以填充其他SelectField。
非常感谢
答案 0 :(得分:1)
尝试request.args.get('sid')
。
您只是使用Ajax来获取参数之一。
还删除contentType: 'application/json;charset=UTF-8'
。