我需要使用EJS从后端的数据库数据中获取前端的代码填充组合框
这是后端
register.get('/register', function (req, res) {
function get_position(callback) {
tempCont.query('SELECT * from `positions`',function (error, results) { if (error) callback(null);
callback(results);
console.log("from query = " + results);});
调用查询功能
get_position(function (data) {
if (!!error) {
console.log('Error in getting positions to combo box');}
else {
res.render('register', {positions:positions.id}); } }) })
这是我对前端的试验
<input type=text list=browsers >
<datalist id=browsers >
<% positions.forEach(function(item){ %>
<option> <%= item %>
<%});%>
</datalist>
预期的结果
要在网页的组合框中显示的位置,供用户从中选择一个值
收到的结果
错误:未定义位置
回答如下:在后端
function get_dept(callback) {
tempCont.query('SELECT * from `positions`', function (error, results) {
if (error) callback(null);
callback(results);
});
}
get_dept(function (izo) {
if (!!error) {
console.log('Error in getting departments to combo box');
}
else {
res.render('./register', { errors: null, positions: izo });
}
})
在前端
<label>Position</label><br>
<input type=text list=browsers >
<datalist id=browsers >
<% positions.forEach(function(item){ %>
<option> <%= item.role_name %>
<%});%>
</datalist>