mysql - 使用 Node 和 Handlebars 动态填充下拉列表的问题

标签 mysql arrays node.js handlebars.js

我正在尝试动态填充模板上的下拉列表。我将公司 ID 添加到数组中,然后尝试将该数组传递给模板。

将 ID 添加到数组中:

var express = require('express');
//var mysql = require('./dbcon.js');


var mysql = require('mysql');
var pool = mysql.createPool({
  connectionLimit : 10,
  host  : 'localhost',
  user  : 'root',
  password: 'Baseball247!',
  database: 'award'
});


var app = express();
var handlebars = require('express-handlebars').create({defaultLayout:'main'});

app.engine('handlebars', handlebars.engine);
app.set('view engine', 'handlebars');
app.set('port', 3000);
app.use(express.static('public'));
app.get('/add-user', function(req,res){
  var context = {};
  pool.query("SELECT id from company;", function(err,rows,fields){
    if (err){
      console.log(err);
      next(err);
      return;
    }
    context.results = rows;
    var companies = [];
    //console.log('The solution is: ', rows.length);
    for (var i =0; i < rows.length; i++) {
      //console.log('The solution is: ', rows[i]["id"]);
      companies.push(rows[i]["id"]);
    }
    console.log(companies);
    res.render('addUser', {companies : companies});
  });
});

然后,我尝试通过以下方式在下拉列表中显示这些值:

<select>
    <% for(var i=0; i < companies.length; i++) { %>
        <option><%= companies[i] %></option>
    <% } %>
</select>

但是,当我查看网页时,下拉列表显示以下内容而不是公司 ID: enter image description here

当我 console.log 数组时,我看到了正确的结果,因此我认为问题出在我如何传递数组或如何在模板中遍历/调用数组。有谁知道我在这里缺少什么?

最佳答案

select 的语法应该是:

    <p>Company: <select name="company" id="company">
    {{#each companies}}
        <option>{{this}}</option>
    {{/each}}
    </select>

关于mysql - 使用 Node 和 Handlebars 动态填充下拉列表的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50081904/

相关文章:

node.js - Express EJS : "Value Not Defined", 但它在 "If"内部

jquery - 使用 Jquery 进行 POST 并接收来自 Node.js 的响应

mysql - 如何修复运行迁移时外键错误

mysql - ci hmvc 查询在模型中返回空结果集

c - 为什么我不能取消引用二维数组?

c - 需要动态内存字节

javascript - 在 javascript 解释器环境中使用 parse

mysql - COUNT(CASE WHEN) SQL 中的重复行

MySQL服务器5.6 : Why my time zone is greater than UTC 6 minutes

java - 在 Java 中查找第三大 no