node.js и ejs, запрашивающие html id или имя для заполнения переменной - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь получить доступ к определенному идентификатору со страницы, но получаю неопределенную ошибку.Я немного над головой с этим, но если бы кто-то мог указать мне правильное направление, это было бы очень ценно.

В принципе, я просто хочу просмотреть все проекты в моей базе данных, все интервьюеры в моей базе данныхи перенести интервью и часы в базу данных.

    sumIntsHours(req, res){ 
    var dbRequest = 'SELECT * FROM `projects` where `status` = 2 ORDER BY jobName ASC';
    db.query(dbRequest, function(error, rows) {
        if(rows.length !== 0) {
            projects = rows;
        }   
    dbRequest = 'SELECT * FROM `interviewers` ORDER BY intName ASC';
        db.query(dbRequest, function(error, rows) {
            interviewers = rows;
        interviewers.forEach((interviewer) => {
            projects.forEach((project) => {
                let hours = req.body.jobHours + "_" + project.id + "_" + interviewer.id;
                let interviews = req.body.jobInts + "_" + project.id + "_" + interviewer.id;
                let jobID = project.id;
                let query = "UPDATE projects SET hours = hours + " + hours + ", interviews = interviews + " + interviews + " WHERE projects.id = '" + jobID + "'";
            db.query(query, (err, result) => {
                    if (err) {
                    return res.status(500).send(err);
                            }
                    res.redirect('/');
            });
});
});
});
});
},
}

Вот мой EJS

<% include partials/header.ejs %>
<div class="table-wrapper">
  <% if (projects.length > 0) {%>
   <form class="add-daily-form" action="" method="post" enctype="multipart/form-data">
    <table class="table table-hovered" id="daily-table">
      <thead class="thead-dark">
        <tr>
          <th scope="col" style="width:10%;">Interviewers</th>
          <% projects.forEach((project, index) => { %>
            <th scope="col" style="width:10%;"><%= project.jobNum %> <%= project.jobName %></th>
            <% }) %>
          </tr>
        </thead>
        <tbody>
        </thead>
        <% interviewers.forEach((interviewer, index) => { %>
          <tr>
            <td><%= interviewer.intName %></td>
            <% projects.forEach((project, index) => { %>
              <td>
                <input style="display:inline-block; width:48%" type="number" placeholder="Hours" class="form-control" name="jobHours_<%= project.id %>_<%= interviewer.id %>" id="jobHours_<%= project.id %>_<%= interviewer.id %>"  step="0.01">
                <input style="display:inline-block; width:48%" type="number" placeholder="Interviews" class="form-control" name="jobInts_<%= project.id %>_<%= interviewer.id %>" id="jobInts_<%= project.id %>_<%= interviewer.id %>" step="0.01">
              </td>
              <% })%>
              <% })%>
              </tr>
              <tr>
              <td> </td>
                    <% projects.forEach((project, index) => { %>
              <td>
                <input style="display:inline-block; width:48%" type="number" placeholder="Total Hours" class="form-control" name="TjobHours_<%= project.id %>" id="TjobHours_<%= project.id %>" step="0.01">
                <input style="display:inline-block; width:48%" type="number" placeholder="Total Interviews" class="form-control" name="TjobInts_<%= project.id %>" id="TjobInts_<%= project.id %>" step="0.01">
              </td>
                    <% })%>
              </tr>
            </tbody>
          </table>
          <% }%>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>
        </div>
      </div>
    </body>
    </html>

Ошибка, с которой я сталкиваюсь (в данный момент), кажется, происходит из этого бита

                let hours = req.body.jobHours + "_" + project.id + "_" + interviewer.id;
                let interviews = req.body.jobInts + "_" + project.id + "_" + interviewer.id;

Я пытаюсь сослаться на эти поля ввода, но не уверен, как должен быть отформатирован запрос при зацикливании следующим образом.

                <input style="display:inline-block; width:48%" type="number" placeholder="Hours" class="form-control" name="jobHours_<%= project.id %>_<%= interviewer.id %>" id="jobHours_<%= project.id %>_<%= interviewer.id %>"  step="0.01">
                <input style="display:inline-block; width:48%" type="number" placeholder="Interviews" class="form-control" name="jobInts_<%= project.id %>_<%= interviewer.id %>" id="jobInts_<%= project.id %>_<%= interviewer.id %>" step="0.01">

Я также вижу, зарегистрировав req.body, что все необходимыеданные существуют в формате, который я пытаюсь использовать (пример: jobHours_20_8), но в настоящее время я пытаюсь получить к ним доступ.

1 Ответ

0 голосов
/ 08 октября 2018

Решено это.

            var z = project.id;
            var y = interviewer.id;
            var n = ("jobInts_"+z+"_"+y);
            var m = ("jobHours_"+z+"_"+y);
            let hh = req.body[m]; 
            let ii = req.body[n]; 
            let query = "UPDATE projects SET hours = hours + " + hh + ", interviews = interviews + " + ii + " WHERE projects.id = '" + jobID + "'";
...