我想要做的是让用户从下拉菜单中选择monthyear,例如feb2017,然后将选中的值输入到服务器端,我将使用选择来搜索数据库,其中month_year = feb2017 ,month_year是我数据库表中的一列。
但是,现在我只想将选项选择到服务器端。我正在使用节点js,express和body解析器。
那么,我该怎么做呢?
这是我的ejs文件
<!DOCTYPE HTML>
<html>
<head>
<title>Add/Edit DA</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<% var rows %>
<% var rowsLength = rows.length %>
<div>
<form id="tableForm" action="/salary-sheet" method="post">
<select class="selectpicker" data-style="btn-info" name="selectpicker">
<optgroup label="Select Table">
<option name="" value="0">Select Month Year</option>
<% for(var i=0;i<rowsLength;i++){ %>
<% if(i>0){ %>
<% if(rows[i].month_year !== rows[i-1].month_year){ %>
<option name="table<%=i %>" value="month1"><%= rows[i].month_year %></option>
<% } %>
<% }else{ %>
<option name="table<%=i %>" value="month2"> <%= rows[i].month_year %></option>
<% } %>
<% } %>
</optgroup>
</select>
<input type="submit" />
</form>
Go back to home page - <a href="/">click here</a>
</div>
</body>
</html>
这是相关的服务器端。
app.get('/select-month',function(req,res){
connection.query('SELECT month_year FROM attendance_details',function(err,rows){
if(err){
throw err;
}else{
var rowsLength = rows.length;
console.log('rows is ',rows);
res.render('select-month.ejs',{rows:rows});
}
});
});
app.post('/salary-sheet',function(req,res){
var month = req.body.table8;
console.log('month is ',month);
res.send(month);
});
很想知道如何从ejs到服务器端选择选项
答案 0 :(得分:3)
首先,假设您希望在month_year
(CMIIW)中包含不同的rows
值,我建议您更改SQL查询以降低视图中的复杂性:
SELECT DISTINCT month_year FROM attendance_details ORDER BY month_year ASC
然后您可以使用它来生成表单:
<form id="tableForm" action="/salary-sheet" method="post">
<select class="selectpicker" data-style="btn-info" name="selectpicker">
<optgroup label="Select Table">
<option value="">Select Month Year</option>
<% rows.forEach(function(row){ %>
<option value="<%= row %>"><%= row %></option>
<% }) %>
</optgroup>
</select>
<input type="submit" value="Submit" />
</form>
并在服务器端处理它:
var express = require('express'),
bodyParser = require('body-parser'),
app = express()
app.set('view engine', 'ejs')
app.use(bodyParser.urlencoded({
extended: true
}))
app.post('/salary-sheet',function(req,res){
var month = req.body.selectpicker
console.log('month is', month)
res.send(month)
})
app.listen(5000)