试图创建一个“购物车”,以供用户保存选定的物品,但是在表单完成后,来自“购物车”的所有数据都插入到一行中
示例:
OrderID StockID
Or002 IT01,IT02,IT03
如何将数据分别分成一行?
预期结果:
OrderID StockID
Or002 IT01
Or002 IT02
Or002 IT03
工作原理:
1)用户将单击一个按钮,该按钮将生成以下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代码将插入到表格/购物车中。
用户不能添加同一项目,但可以使用<input name="FQty">
修改数量(<a id="dec"> and <a id="inc">
的值)。
2)当用户完成订购后,以下代码将运行
(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库存ID
Or002 D
数据库信息:
OrderID(PK)varchar(10), StockID(PK)varchar(10), 数量int()
答案 0 :(得分:0)
如果我的理解正确,您的购物车将同时包含sap.ui.define([
"sap/m/VBox",
"sap/m/VBoxRenderer"
], function (VBox, VBoxRenderer) {
"use strict";
var MyBox = VBox.extend("my.domain.controls.VBox",
{
metadata : {
properties : {
},
aggregations : {
},
events: {
copy : { parameters : {} },
paste : { parameters : {} }
}
},
init : function () {
this._bExcludeFromTabChain = false;
VBox.prototype.init.apply(this, arguments);
},
renderer : function (oRM, oControl) {
oRM.write("<div");
oRM.writeControlData(oControl);
oRM.addClass("MyBox");
oRM.writeAttribute("tabindex", "0"); // allows selection
oRM.writeClasses();
oRM.write(">");
VBoxRenderer.render.apply(this, [oRM, oControl]);
oRM.write("</div>");
}
});
MyBox.prototype.onAfterRendering = function() {
this.$().on("copy", jQuery.proxy(this.handleCopy, this));
this.$().on("paste", jQuery.proxy(this.handlePaste, this));
};
MyBox.prototype.onBeforeRendering = function() {
this.$().off("copy", this.handleCopy);
this.$().off("paste", this.handlePaste);
};
MyBox.prototype.exit = function() {
this.$().off("copy", this.handleCopy);
this.$().off("paste", this.handlePaste);
};
MyBox.prototype.handleCopy = function() {
this.fireEvent("copy", {});
};
MyBox.prototype.handlePaste = function() {
this.fireEvent("paste", {});
};
MyBox.prototype.getAccessibilityInfo = function() {
return {
children: this.getItems(),
focusable: true
};
};
return MyBox;
});
和<input name=FID>
的多个字段,因此在发布表单时,<input name=FQty>
和Request.Form["FID"]
分别是以逗号分隔的列表?如果是这样,也许可以通过以下方法达到目的:
Request.Form["FQty"]
仅使用您共享的代码有点难以理解,但是请告诉我我是否走在正确的轨道上。