【问题标题】:Form post request is not returning necessary information表单发布请求未返回必要的信息
【发布时间】:2021-08-27 18:49:30
【问题描述】:

我正在尝试从此表单中提取信息,但我只能使用 TIME 输入框和 Count 输入框来做到这一点。我需要 ROOM 和 SESSION,但是当我发送 post 请求时,我只能从 TIME 和 COUNT 获取信息。我认为这与它们是“选项”和“输入”有关,但我不确定。

<form class="form-container"  method="POST">

            <div class="form-group">
                <label>Room</label>
                <select class="form-select" required aria-label="select example">
                {{#each room}}
                <option class="rooms" name="room">{{this.room}}</option>
                {{/each}}
                </select>
                <label>Session</label>
                <select class="form-select" required aria-label="select example">
                {{#each room}}
                    <option class="rooms" name="sessions">{{this.session_name}}</option>
                {{/each}}
                </select>
            </div>

            <div class="form-group">
                <label for="exampleInputPassword1">Time</label>
                <input type="time" name="count_time" class="form-control" id="exampleInputPassword1">
            </div>

            <div class="form-group">
                <label for="exampleInputPassword1">Count</label>
                <input type="number" name="room_counts" class="form-control" id="exampleInputPassword1" placeholder="Count">
            </div>

            <div class="button-container">
                  <button type="submit" class="btn btn-primary">Submit</button>
            </div>       
          
        </form>

这是我用于后端的代码

app.post('/count', (req,res)=>{

    console.log(req.body);

    res.redirect('/count');

});

当我点击提交时,这就是我得到的 {count_time: '', room_counts:''}。非常感谢您帮助我们弄清楚发生了什么以及如何解决它。

【问题讨论】:

    标签: html node.js express handlebars.js


    【解决方案1】:

    在表单中,选择字段没有名称,这就是服务器中没有完整对象的原因。规则是:

    • &lt;select&gt;标签中,需要添加name属性
    • &lt;option&gt;标签中,需要添加value属性

    这是我的工作代码(我为了测试目的简化了代码):

    <html>
    
    <head>
    
    </head>
    
    <body>
        <form class="form-container" method="POST" action="/count">
    
            <div class="form-group">
                <label>Room</label>
    <!-- add "name" property in select -->
                <select name="room" class="form-select" required
                    aria-label="select example">
    
    <!-- add "value" property in option -->
                    <option class="rooms" value="A">A</option>
                    <option class="rooms" value="B">B</option>
                </select>
                <label>Session</label>
                <select name="sessions" class="form-select" required
                    aria-label="select example">
                    <option class="rooms" value="C">C</option>
                    <option class="rooms" value="D">D</option>
                </select>
            </div>
    
            <div class="form-group">
                <label for="exampleInputPassword1">Time</label>
                <input type="time" name="count_time" class="form-control"
                    id="exampleInputPassword1">
            </div>
    
            <div class="form-group">
                <label for="exampleInputPassword1">Count</label>
                <input type="number" name="room_counts" class="form-control"
                    id="exampleInputPassword1" placeholder="Count">
            </div>
    
            <div class="button-container">
                <button type="submit" class="btn btn-primary">Submit</button>
            </div>
    
        </form>
    </body>
    
    </html>
    

    在服务器中,我有这样的完整对象:{ room: 'A', sessions: 'C', count_time: '22:01', room_counts: '1' }

    【讨论】:

    • 谢谢!!有效。我希望我能投票,但我在这个平台上的声誉太低了。
    • 完成。谢谢你,朋友。
    猜你喜欢
    • 2020-01-07
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多