【问题标题】:Displaying Default value in HTML form from MySQL using node.js使用 node.js 从 MySQL 以 HTML 形式显示默认值
【发布时间】:2021-08-12 00:00:55
【问题描述】:

我有一个场景,我必须显示一个表单,而不是接受输入,我必须显示使用 nodejs 从数据库中提取的一些值。以下是预期结果

所以,我写了以下代码

confirm.ejs

<form>
<label for="fname">First Name</label>
<input type="text" class="form-control" value="<%= ticket.Fname %>" id="fname" readonly>
</form>

js但我相信是正确的

router.get("/confirm",function(req,res){
    db.query("SELECT * FROM details WHERE Ticket=?",[variabled4],function(err, results, fields){
        if (err) throw err;
        res.render('confirm', { title: 'ticket info', ticket: results});
    });
});

所以,我认为问题出在value = "&lt;%= ticket.Fname %&gt; 并且显示了整个表单,但字段为空。 (Fnamedetails 表中的一列,以 hello 为值,不要混淆为 fname 的拼写错误)

请建议如何解决这个问题。

【问题讨论】:

  • mdn 网站建议HTMLInputElement 但我不知道如何使用它
  • sequelize 原始查询应该返回一个数组作为响应。检查是否需要从中提取票证 ({ title: 'ticket info', ticket: results[0]})。
  • @Daniel 非常感谢。起初,我以为您选择的是数组中的特定列,但后来我明白您选择的是数组本身。我将使用此编辑再试一次。
  • @Daniel 感谢问题已解决,我认为 html 标记内的 ejs 没有问题。您也可以发布答案。

标签: html node.js forms ejs


【解决方案1】:

sequelize Raw Queries 返回一个数组作为响应。您应该检查数组是否不为空并提取ticketresults[0]

见:https://sequelize.org/master/manual/raw-queries.html

这里有一个小的 sn-p(按照你的意愿处理“找不到票”)

router.get("/confirm",function(req,res){
    db.query("SELECT * FROM details WHERE Ticket=?",[variabled4],function(err, results, fields){
        if (err) throw err;
         // on "results.length == 0" handle "ticket not found" flow

        let ticket = results[0];
        res.render('confirm', { title: 'ticket info', ticket: ticket});
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2016-07-02
    • 1970-01-01
    • 2018-11-01
    相关资源
    最近更新 更多