【问题标题】:how to use a variable in req.body - nodejs如何在 req.body 中使用变量 - nodejs
【发布时间】:2017-01-29 15:53:19
【问题描述】:

我想做的是从表单中获取数据 但是表单是动态生成的,所以我不知道会出现多少行。 所以对于我的表单(使用 ejs)

<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>
    <% });   %>
     <input type="submit" value="submit" />
</form>

这里 i 从 1 变为 10 或任何数据长度。 所以,例如 表单名称来自出席1、出席2、出席3、.....

在我使用的服务器端

app.post('/attendance-data',function(req,res){
    var  daysPresent;
    var attendance;
    for(var i=1;i<=numberOfEmployees;i++){

        attendance = "attendance"+i;
        daysPresent = req.body.attendance;
        console.log('attendance is :',attendance);
        console.log('days present is :',daysPresent);
    }

});

在这里,我想从每个循环的表单中获取当前天数的值。 所以,第一个循环,它得到 req.body.attendance1 其次它得到 req.body.attendance2 , 等等 但是当我使用变量出勤而不是出勤1和出勤2时 直接,然后我得到未定义的结果。

当我直接使用 req.body.attendance1 或 req.body.attendance2 或类似的东西时,我只会得到结果。

为什么会这样? 为什么我不能使用从出勤1、出勤2、......中获取所有值的出勤变量?

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

    获取daysPresent值的行:

    daysPresent = req.body.attendance; 
    

    应该是:

    daysPresent = req.body[attendance]
    

    【讨论】:

    • 天啊!有效。就如此容易??我有没有提到我有多爱你??
    • 你能帮我回答这个问题吗?我想把它放在数据库中作为下一步。所以我应该把命令 connect.query(insert into ..... 放在循环本身里面吗??
    猜你喜欢
    • 2015-07-23
    • 2023-03-30
    • 2023-04-07
    • 2017-04-06
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多