尝试通过编写PC游戏商店原型来学习Node.JS。
我在主页上的MySQL数据库中显示了所有游戏。
router.get('/', function(req, res){
database.connection.query("select * from games", function(err, rows, fields){
if(err) console.log(err);
res.render('main', {rows: rows});
});
HTML:
<% for (var i = rows.length-1; i >= 0; i--) { %>
<form method="post" action="/buyItem">
<div style="float:left;" class="Game">
<div class="text">
<label><%= rows[i].name %></label> <br>
<label><%= rows[i].category %></label>
</div>
<img src="<%= rows[i].image %>"> <br>
<label><%= rows[i].price %> </label> <br>
<button type="submit" class="button">Purchase</button>
<br> <br> <br>
</div>
</form>
<% } %>
在这种情况下如何实现post方法?我如何知道按下了哪个提交按钮,以便可以将该游戏添加到用户的存储桶中? (尚未实现存储桶)
也许我应该为页面上的每个游戏创建新动作?像<form mathod="post" action="/buyItem <% + i %>">
一样,但仍然如何捕获这些动作?
答案 0 :(得分:1)
您只能创建单个表格。然后单击按钮,获得游戏的ID并执行购买功能。
<form mathod="post" action="/buyItem">
for (var i = rows.length-1; i >= 0; i--){
<div style="float:left;" class="Game">
<div class="text">
<label><%= rows[i].name %></label> <br>
<label><%= rows[i].category %></label>
</div>
<img src="<%= rows[i].image %>"> <br>
<label><%= rows[i].price %> </label> <br>
<button type="submit" class="button" onclick="purchase(rows[i].id)">Purchase</button>
<br> <br> <br>
</div> }
</form>