首页 > 解决方案 > '?' 附近的语法不正确

问题描述

我有 2 个使用 SQL Server 中的查询填充的下拉菜单。根据所选项目,我正在加载不同的 ejs 模板。我在 AJAX 的帮助下完成了这项工作。但是,我希望能够根据所选标准加载数据。例如,如果DD1选择 asAndrewDD2asDate表应根据这些条件加载 7 列。

又名

SELECT * FROM exTable x WHERE x.Name = Andrew and x.Date = '4/22/2019

路由器.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.post('/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)
    }
 });

索引.ejs

    <script>
        $(document).ready(function(){
            $('#date').on('change', function(event) {
                var dates = $('#selections option:selected').val();
            });
            $('#name').on('change', function(event) {
                var manVal = $('#selection option:selected').val();
                alert(manVal);
            });

            $('#submitData').on('submit', function(e){
                e.preventDefault();
                $.ajax({
                    type: "POST",
                    url: "/selection",
                    data: {dates : dates , manVal: manVal},
                    success: function() {
                        alert('success');
                    }
                });
            });
        });    
    </script>
<form action="/selection" method="POST">
 <select class="DateDD" id="date" name="Dates">
      <% for(var n=0; n < dates.recordset.length; n++) { %>
           <option><%= dates.recordset[n].Date%></option>
      <% } %>
  </select>
  <select class="NameDD" id="name" 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" />
</form>

选择.ejs

包含与 INDEX.EJS 相同的内容(除了<script>标签)和...

<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>

这是我收到的错误:'?' 附近的语法不正确 在我点击提交按钮后。

标签: node.jssql-serverexpressejs

解决方案


推荐阅读