我没有得到任何关于此的信息。任何有关这方面的帮助将不胜感激!基于在第一个下拉列表中选择的值使用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