【发布时间】:2021-01-16 13:40:54
【问题描述】:
我正在尝试通过表单获取用户信息,然后在“订单”表中插入相同的数据。 一切看起来都正确,但有一个错误显示 total_cost 未定义。 我也尝试在全球范围内声明它。
total_cost 应该是用户在表单中选择的数量乘以从数据库中获取的产品价格。
这是 app.js 的发布请求:
// post create_order page
app.post("/create_order", function(req, res){
var name = req.body.name;
var quantity = req.body.quantity;
var email = req.body.email;
// fetching price from menu table
var sql = "select Price from menu where Name=?";
db.query(sql,[name], function(err, result){
if(err){
throw err;
}else if(result==0){
console.log("No items found!!!")
}else{
console.log(result)
console.log(Price)
var total_cost = result;
console.log(total_cost )
}
})
// Updating the order table
let today = new Date().toISOString().slice(0, 10);
let order = {
Item : name,
Quantity : quantity,
TotalCost : total_cost,
Date : today,
email : user
}
sql1 = "Insert into orders SET ?";
db.query(sql1, order, function(err, result2){
if(err){
throw err;
}else{
res.redirect("/orders");
}
})
})
这是用于获取数据的相应订单:
<!-- //Order form goes here -->
<div class="orderform">
<form action="/create_order" method="POST">
<div class="form-group">
<label for="exampleFormControlSelect1">Select Item</label>
<select class="form-control" name="name" id="exampleFormControlSelect1">
<%result.forEach(function(result){%>
<option><%=result.Name%></option>
<%})%>
</select>
</div>
<div class="form-group" >
<label for="exampleFormControlInput1">quantity</label>
<input type="number" name="quantity" class="form-control" id="exampleFormControlInput1" placeholder="quantity" min="1" max="10">
</div>
<div class="form-group">
<label for="exampleFormControlInput1">Email address</label>
<input type="email" name="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com">
</div>
【问题讨论】: