Я очень новичок в Node, просто пытаюсь написать простое приложение, которое имеет 2 выпадающих списка, которые заполняются из запроса mssql, и когда я нажимаю на кнопку submit, соответствующие данные должны отображаться на следующей странице.
Более подробно ...
У меня есть две .ejs
страницы (index.ejs
, selection.ejs
).Выпадающие списки принадлежат index.ejs
, и я хочу иметь возможность выбирать элементы из обоих раскрывающихся списков Name
, Date
и нажимать кнопку Submit .Который затем направит меня на страницу selection.ejs
и отобразит таблицу из 7 столбцов на основе выбранных критериев.
router.js
router.get('/', async (req, res) => {
try {
var name = await conn.query("SELECT DISTINCT pr.Name FROM WFS.PRTABLE pr WHERE pr.Functional_Group = 'Test'");
var dates = await conn.query('SELECT r.Date FROM WFS.Dates r');
res.render('index', {name : name , dates: dates});
} catch (err) {
res.status(500)
res.send(err.message)
}
});
router.get('/selection', async (req, res) =>{
try {
var name = await conn.query("SELECT DISTINCT pr.Name FROM WFS.PRTABLE pr WHERE pr.Group = 'Test'");
var dates = await conn.query('SELECT r.Date FROM WFS.Dates r');
var dateID = req.body.Dates;
var nameID = req.body.Names;
var tables = await conn.query("SELECT * FROM WFS.Views v WHERE v.Name = ? AND v.Date = ?", [ nameID , dateID ], function(err){
if(err) throw err;
res.render('selection', {tables: tables, name : name , dates: dates});
});
}
catch (err) {
res.status(500)
res.send(err.message)
}
});
index.ejs
<select class="DateDD" id="selection" name="Dates">
<% for(var n=0; n < dates.recordset.length; n++) { %>
<option><%= dates.recordset[n].Date%></option>
<% } %>
</select>
<select class="NameDD" id="selection" name="Names">
<% for(var n=0; n < name.recordset.length; n++) { %>
<option><%= name.recordset[n].Name%></option>
<% } %>
</select>
<input type="submit" name="Submit" id="submitData" class="btn btn-primary" value="View Report" />
selection.ejs
содержит то же самое, что и INDEX.EJS и ...
<table class="table table-bordered table-condensed table-striped">
<% for(var n=0; n < tables.recordset.length; n++) { %>
<tr>
<td><%=tables.recordset[n].Name%></td>
<td><%=tables.recordset[n].Date%></td>
....
....
....
....
</tr>
<% } %>
</table>
Я продолжаю получать эту ошибку Неверный синтаксис рядом с '?'. Не знаю, что вызвало это.Все, что я хочу сделать, это передать выбранное имя и дату из выпадающего списка в запрос как мое предложение WHERE
и соответственно отобразить данные на selection.ejs
.