【发布时间】:2019-09-12 10:59:33
【问题描述】:
尝试创建一个“购物车”,其中包含用户选择的项目,但在表单完成后,“购物车”中的所有数据都将插入一行
例子:
OrderID StockID
Or002 IT01,IT02,IT03
如何将数据分别分成一行?
预期结果:
OrderID StockID
Or002 IT01
Or002 IT02
Or002 IT03
它是如何工作的:
- 用户将单击将生成以下 HTML 代码的按钮。
(Javascript)
var cartRowContents = `
<a class="dec" id="dec">-</a>
<input class="quan-num" id="number" name="FQty" value="1"/>
<a class="inc" id="inc">+</a>
<input type="hidden" id="FID" name="FID" value=${id} />
<div class = "rem">REMOVE ITEM</div>`;
名为 FID 的输入携带了用户选择的项目的 ID 的向下传递值;
生成的 HTML 代码将插入到表单/购物车中。
用户不能添加相同的项目,但可以使用 <a id="dec"> and <a id="inc"> 修改数量(<input name="FQty"> 的值)。
- 用户完成订单后,将运行以下代码
(C#)
@functions{
public static String insD(Database db, String query) {
IEnumerable<dynamic> data;
data = db.Query(query); //Executing the Query
return query;
}
}
(ASP.NET 网页)
@{
Database db = Database.Open("geh");
String m_OrderID = "Or002";
if (IsPost) { //if statement when form is submitted
string FID = Request.Form["FID"];
var Qty = Request.Form["FQty"];
String query = "INSERT INTO gah.order VALUES ('" + m_OrderID + "','" + FID + "','" + Qty + "')";
insD(db, query);
}
我尝试过的:
(ASP.NET 网页)
@{
if (IsPost) {
Database db = Database.Open("geh");
String m_OrderID = "Or002";
for(int i = 0; i < 2 ; i++){
var FID = Request.Form["FID"][i];
var Qty = Request.Form["FQty"][i];
String query = "INSERT INTO gah.orders VALUES ('" + m_OrderID + "','" + FID + "', '" + Qty + "')";
insD(db, query);
}
}
}
导致插入 ID 的第一个字符。
例子:
ID = "DE002"
OrderID StockID
Or002 D
Database Info:
OrderID(PK) varchar(10),
StockID(PK) varchar(10),
Qty int()
【问题讨论】:
-
运气不好,逗号分隔的值真是一团糟。千万不要这样存储数据,只会带来很多麻烦。
-
是的,花了几个小时试图弄清楚如何将它们分开。
标签: javascript mysql sql asp.net razor