我使用表格布局制作了某种形式 表格如下:
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>
答案 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')
})
}