【发布时间】:2016-12-09 19:02:48
【问题描述】:
我有一个正在使用的下拉菜单。这是HTML:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="{{url_for('static',filename='dropdown_change.js')}}"></script>
<form action="{{url_for('select_ID')}}" method="POST">
<label for="input_ID">ID</label>
<input type="text" />
<label for="Node_Type">Node_Type</label>
<select id="dropdown_change">
<option value=1>Customer</option>
<option value=2>Phone</option>
<option value=3>ID_Card</option>
</select>
<input type='submit' value='Submit'>
</form>
这是我的烧瓶视图:
import db_connect_test
from db_connect_test import Viz_Connector
from flask import Flask, request, session, redirect, url_for, render_template, flash,json,jsonify
import os
app = Flask(__name__)
@app.route('/',methods = ['GET','POST'])
def select_ID():
if request.method == 'POST':
ID=request.form['input_ID']
Node_Type = request.form['Node_Type']
data = Viz_Connector(ID,Node_type).get_data()
return render_template('dropdown.html',data=json.dumps(data))
return render_template('dropdown.html')
if __name__ == '__main__':
host = os.getenv('IP','0.0.0.0')
port = int(os.getenv('PORT',5000))
app.secret_key = os.urandom(24)
app.run(host=host,port=port)
这是我的下拉菜单。有一个用于“单击”提交按钮的事件监听器。我认为我是手的方式
$('input[type=submit]').click(function() {
var ID = $("#input_ID").val();
var selectID = $("#dropdown_change").val();
$.ajax({
type: "POST",
url: "/select_ID",
data: {
ID: ID,
Node_Type: selectID //right way to pass the data to flask?
},
success: function(data) {
alert('SUCCESS: ' + data);
},
error: function(xhr, textStatus, errorThrown) {
document.getElementById('dropdown_change').selectedIndex = 0;
showMsg('ERROR: ' + errorThrown);
return false;
}
});
return false;
});
当我运行它时它失败了:
400:Bad request
【问题讨论】:
-
@lix URL对应flask中的“select_ID”函数。
-
我认为您在文本输入中缺少#input_ID。你检查过 JS 控制台的错误吗?
-
您还需要协调变量名称。最简单的方法是将所有 HTML ID 与发布的表单值匹配。
-
@dana 我认为他们现在和解了,我确实看到了您在答案部分发布的内容,但现在已经消失了。
-
@optimus_prime - 好的,我没有删除我的答案。您可能还有一些额外的事情需要清理,但至少指出了一些问题。
标签: javascript jquery html ajax flask