我沒有得到任何關於此的信息。任何有關這方面的幫助將不勝感激!基於在第一個下拉列表中選擇的值使用ajax和jQuery填充第二個下拉列表
我有兩個經理和員工的下拉菜單。
經理下拉列表默認包含經理列表。
我想通過查詢SQL Server數據庫與用戶在管理員下拉列表中選擇的管理員名稱來填充員工名稱的員工下拉列表。
因此對於例如如果某人在管理員下拉列表中選擇Tom作爲經理,那麼Employees下拉列表應填入Manager = Tom的員工姓名。
到目前爲止,我有以下代碼:
路線(這我使用的查詢SQL Server數據庫根據經理的名字讓員工列表):
@app.route ('/getEmployees', methods=['GET'])
def getEmployees():
engine = create_engine('mssql+pyodbc://<server name>/<DB name>?driver=SQL+Server+Native+Client+11.0')
Base = declarative_base(engine)
class Bookmarks(Base):
__tablename__ = '<table name>'
Employee = Column(String(50))
__table_args__ = {'autoload': True}
def __repr__(self):
return '{} '.format(self.Employee)
def loadSession():
metadata = Base.metadata
Session = sessionmaker(bind=engine)
session = Session()
return session
if __name__ == "__main__":
session = loadSession()
return session.query(Bookmarks).filter_by(Manager='<I want to populate this with the manager name a user selects in the Manager dropdown>')
在索引管理器下拉菜單。 HTML
<div class="form-group">
<select class="form-control" id="next" name="division" data-error="Required!" required>
<option value="default" disabled selected>Select something</option>
<option value="option1">Tom</option>
<option value="option2">Bob</option>
</select>
</div>
員工下拉在app.py
Employees = QuerySelectField('Employees', query_factory=getEmployees, allow_blank=True)
index.html中
<div class="form-group" id="sel_user">
{{ render_field(form.Employees,class="form-control", required="required") }}
</div>
我使用jQuery與Ajax獲得管理員名稱用戶選擇在經理下拉菜單,然後用它做的東西..
$(document).ready(function(){
$("#next").change(function() {
var Manager=($('#next option:selected').text());
console.log(Manager);
$.ajax({
url: "/getEmployees",
type: 'GET',
contentType: 'application/json',
dataType: 'json',
// not sure what to do next..?
});
});
});
誰能請一旦我有了用戶在Managers下拉菜單中選擇的值,下一步我應該做什麼?
請粘貼'/ getEmployees'調用的響應。我的意思是,你打電話時收到的代碼的一個例子。另一方面,它看起來不像是爲員工設置下拉菜單,它表示「type =」text「(看起來像普通的文本輸入)。 –
@ A.Iglesias非常感謝! 對不起,但我沒有爲route/getEmployees定義任何模板。我的意思是,我不確定我們是否需要一個。 現在,當我在函數getEmployees()的以下步驟中對經理的名稱(湯姆或鮑勃)進行硬編碼時,我能夠看到員工下拉列表中充滿了員工列表。 return session.query(Bookmarks).filter_by(Manager ='Tom') 我只是無法理解我們如何傳遞用戶在管理員下拉菜單中選擇的經理姓名,並將該值傳遞給上面的步驟以便我們可以看到該經理的員工姓名。 – LinuxUser
基本上,我不想硬編碼經理的名字。我希望它根據經理的下拉列表中選擇的值動態更新 return session.query(Bookmarks).filter_by(Manager ='') 再次感謝! –
LinuxUser