获取列数据并插入另一列中给出id的行 - sql nodejs

时间:2017-01-28 23:08:04

标签: mysql node.js express ejs

我使用表格布局制作了某种形式 表格如下:

UAN NAME指定天数 87982 JOHN SALESMAN 25

现在,已经给出了名称和名称的列(从数据库中获取),用户只需要输入。 然后将天数插入数据库 在UAN = 87892

的行中

问题在于我无法弄清楚如何从页面获取UAN的值并使用它来输入数据库中的天数。

你能想一下如何用nodejs来实现这个目的吗? 我正在使用ejs模板系统和mysql数据库。

这不是唯一的问题。 我还想输入所有不同员工的天数 将UAN编号添加到行中的天数。 我该怎么做?

任何想法??

这是考勤页面的代码

<!DOCTYPE HTML>
<html>
<head><title>attendance for employees</title>
<link rel="stylesheet" href="style.css">

</head>

<body>
<div>
    <table>
        <tr>
 <th>Serial No.</th>              
<th>UAN</th>
<th>Name</th>
<th>Designation</th>
<th>Attendance</th>
</tr>
<form action="/attendance-data" method="post">
     <% var i=0 %>
<% rows.forEach(function(item){ %>
       <% i=i+1 %>
     <tr>
          <td><%= i+"." %></td>
        <td id="uan<%= i %>"> <%= item.uan  %> </td>
        <td><%= item.name %></td>
        <td><%= item.designation %></td>
        <td><input type="text" name="attendance <%= i %>" ></td>
     </tr>
    <% });   %>
</form>


    </table>
</div>
<div>

<input type="button" value="submit" />


</div>



</body>
</html>

1 个答案:

答案 0 :(得分:1)

为了从页面获取数据并将其插入数据库: WHERE uan = '[data_from_html]',您需要按名称引用它。当用户在表格中输入多少天的出勤时,可以完成此操作。你将遇到的最大问题是表格难以与表格相对应。您可以将整个表放在表单内,但不能相反。

在你最后一个td标签的内部,最好将整个表单放在那里,只有一个字段可见,其余字段隐藏(你仍然可以像你一样显示,只是将其他字段留在表单之外:

          <td>
            <form action='/attendance-data' method='post'>
                <input type='hidden' id='uan<%= i %>' name='attendance' value ='<%= i %>'/>
                <input type='hidden' name='item_name' value ='<%= i %>'/>
                <input type='hidden' name='designation' value ='<%= item.designation %>'/>
                <input type='text' name='attendance' value ='<%= i %>'/>
                <input type="submit" value="Submit" />
            </form>
        </td>

然后在快递中的路线内:

app.post('/attendance-data', function(req, res) {
    var uan = req.body.uan
    var item_name = req.body.item_name
    var designation = req.body.designation
    var attendance = req.body.attendance

    // Make sure they all contain some sort of value

    var connString = new ConnectionString(
        config.mysql.host,
        config.mysql.port,
        config.mysql.username,
        config.mysql.password,
        config.mysql.default_db
    )

    var MySqlConn = new MySqlConnection(connString)

    // Proceed to do an update/insert into your db
    MySqlConn.Connection.query("insert into [your_table] " +
    "values(uan, item_name, designation, attendance) where uan='" + uan + "'",
    function (err) 
    { 
        if (err) 
        { 
            console.log(err.stack)
            throw err
        }
        // Otherwise success
        res.status(200).send('blah')

    })
}