Javascript 如何使用数组提交html?

Javascript 如何使用数组提交html?,javascript,jquery,Javascript,Jquery,如何仅使用javascript发布包含数组数据的html表单 大家好 我有一个简单的HTML,用户可以从HTML表中选择多行。我有一个按钮,它将提交一个表单到后端。在对数组进行更改之前,我已经使用single Entry进行了测试 我试过研究,现在我就在这里。我试图提交表单,但我认为没有正确传递值 如果有人能阅读我的代码并指导我,我将不胜感激 布料 材料类型 材料组 材料ESC 植物 存储位置 价格 量 项目类别 数组是aItems aItems (4) [{…}, {…}, {…}, {…}]

如何仅使用javascript发布包含数组数据的html表单

大家好

我有一个简单的HTML,用户可以从HTML表中选择多行。我有一个按钮,它将提交一个表单到后端。在对数组进行更改之前,我已经使用single Entry进行了测试

我试过研究,现在我就在这里。我试图提交表单,但我认为没有正确传递值

如果有人能阅读我的代码并指导我,我将不胜感激

布料 材料类型 材料组 材料ESC 植物 存储位置 价格 量 项目类别 数组是aItems

aItems
(4) [{…}, {…}, {…}, {…}]
0: {KeyIndex: 1, NEW_ITEM-MATNR: "5", NEW_ITEM-MATGROUP: "31260000", NEW_ITEM-DESCRIPTION: "Casings", NEW_ITEM-CUST_FIELD1: "N", …}
1: {KeyIndex: 3, NEW_ITEM-MATNR: "1511", NEW_ITEM-MATGROUP: "31260000", NEW_ITEM-DESCRIPTION: "Casings", NEW_ITEM-CUST_FIELD1: "N", …}
2: {KeyIndex: 5, NEW_ITEM-MATNR: "1513", NEW_ITEM-MATGROUP: "31260000", NEW_ITEM-DESCRIPTION: "Casings", NEW_ITEM-CUST_FIELD1: "N", …}
3: {KeyIndex: 7, NEW_ITEM-MATNR: "1514", NEW_ITEM-MATGROUP: "31260000", NEW_ITEM-DESCRIPTION: "Casings - No MMSL", NEW_ITEM-CUST_FIELD1: "N", …}
length: 4
__proto__: Array(0)
我没有使用PHP,所以我想知道我是否仍然可以提交一个数组中包含多个条目的表单?我没有使用PHP的经验,这就是为什么我只是尝试使用javascript


谢谢

看起来您的docready函数实际上可能没有提交表单。尝试将其更改为:

$(document).ready(function() {
        $('#frmbasket').submit();
    });
});
因为我认为document.frmbasket没有定义。

设法解决了这个问题

我所要做的就是循环我的数组,动态创建表单,然后发布它

$(document).ready(function() {
    $("#btnSubmit").click(function() {
        alert("Submitted");

        // var $form = $('<form />', { action: 'SAPEVENT:POST', method: 'post' });
         //Create form
         aItems.unshift("Blank"); //OCI starts with parameter[1] so if we loop through array, array[0] won't be picked
         var form = $(document.createElement('form'));
         $(form).attr("action", "SAPEVENT:POST");
         $(form).attr("method", "post");
         for (var index = 0; index < aItems.length; ++index) {
                var MatDesc = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-DESCRIPTION' + '[' + index + ']').val(aItems[index]["NEW_ITEM-DESCRIPTION"]);
                var MatNo = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-MATNR' + '[' + index + ']').val(aItems[index]["NEW_ITEM-MATNR"]);
                var MatGrp = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-MATGROUP' + '[' + index + ']').val(aItems[index]["NEW_ITEM-MATGROUP"]);
                var CustField1 = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-CUST_FIELD1' + '[' + index + ']').val(aItems[index]["NEW_ITEM-CUST_FIELD1"]);
                var Price = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-PRICE' + '[' + index + ']').val(aItems[index]["NEW_ITEM-PRICE"]);
                var Qty = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-QUANTITY' + '[' + index + ']').val(aItems[index]["NEW_ITEM-QUANTITY"]);
         $(form).append($(MatDesc));
         $(form).append($(MatNo));
         $(form).append($(MatGrp));
         $(form).append($(CustField1));
         $(form).append($(Price));
         $(form).append($(Qty));
         };
         form.appendTo( document.body )
         $(form).submit();       
    });
});

你有一个事件:POST。PHP有什么问题?在此之前,我可以提交单个条目。但现在我有一个数组需要提交。有没有办法通过javascript实现这一点?此表格将发送回SAP ECC进行处理。单条目工作,但我正试图提交一个数组从表中的多个选择它是完全不清楚你在问什么。如果表格有效,提交人将提交表格中的内容。如果你有一个数组。。很抱歉,我想问的也是对的。上次我这样发布它,而不是像NEW_ITEM-DESCRIPTION[2]、NEW_ITEM-DESCRIPTION[3]、NEW_ITEM-DESCRIPTION[4]这样进行硬编码增量,我能根据数组中对象的数量发布它吗?我真的不知道你的意思嘿,多夫,我很抱歉……我在早些时候创建帖子时删除了一行额外的内容。我已经更新了我的帖子lol
$(document).ready(function() {
    $("#btnSubmit").click(function() {
        alert("Submitted");

        // var $form = $('<form />', { action: 'SAPEVENT:POST', method: 'post' });
         //Create form
         aItems.unshift("Blank"); //OCI starts with parameter[1] so if we loop through array, array[0] won't be picked
         var form = $(document.createElement('form'));
         $(form).attr("action", "SAPEVENT:POST");
         $(form).attr("method", "post");
         for (var index = 0; index < aItems.length; ++index) {
                var MatDesc = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-DESCRIPTION' + '[' + index + ']').val(aItems[index]["NEW_ITEM-DESCRIPTION"]);
                var MatNo = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-MATNR' + '[' + index + ']').val(aItems[index]["NEW_ITEM-MATNR"]);
                var MatGrp = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-MATGROUP' + '[' + index + ']').val(aItems[index]["NEW_ITEM-MATGROUP"]);
                var CustField1 = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-CUST_FIELD1' + '[' + index + ']').val(aItems[index]["NEW_ITEM-CUST_FIELD1"]);
                var Price = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-PRICE' + '[' + index + ']').val(aItems[index]["NEW_ITEM-PRICE"]);
                var Qty = $("<input>").attr("type", "hidden").attr("name", 'NEW_ITEM-QUANTITY' + '[' + index + ']').val(aItems[index]["NEW_ITEM-QUANTITY"]);
         $(form).append($(MatDesc));
         $(form).append($(MatNo));
         $(form).append($(MatGrp));
         $(form).append($(CustField1));
         $(form).append($(Price));
         $(form).append($(Qty));
         };
         form.appendTo( document.body )
         $(form).submit();       
    });
});