Javascript 创建和提交动态表单

Javascript 创建和提交动态表单,javascript,jquery,Javascript,Jquery,我想开发一个网页,其中动态添加和删除页面上的特定webforms(所有具有相同结构的webforms)(当按add和remove按钮时)。添加和删除webforms在下面的代码中已经起作用(使用jquery函数),但在提交更多表单时,我仍然难以创建相关的唯一名称值。我的想法是: -将所有表单放入数组(forms())-每个表单都具有唯一的名称值 -…并在数组(formsavailable())中维护已添加/使用和已删除的表单 我已经添加了在添加表单时维护formsavailable()的代码(如

我想开发一个网页,其中动态添加和删除页面上的特定webforms(所有具有相同结构的webforms)(当按add和remove按钮时)。添加和删除webforms在下面的代码中已经起作用(使用jquery函数),但在提交更多表单时,我仍然难以创建相关的唯一名称值。我的想法是: -将所有表单放入数组(forms())-每个表单都具有唯一的名称值 -…并在数组(formsavailable())中维护已添加/使用和已删除的表单

我已经添加了在添加表单时维护formsavailable()的代码(如下)。但是我不知道如何编写formsavailable()来删除表单

有什么想法吗?或者,有没有更简单的方法来创建具有所描述上下文的唯一名称值

请发表评论

多谢各位

守则:

<script>
    var forms = Array();
    var formsavailable = Array();

    forms = getProductconfigforms(); //create a list of strings with the product forms

    var NUMBER_OF_FORMS = 5;

    for (var i=1; i<=NUMBER_OF_FORMS;i++)
    {
            formsavailable[i] = true; //at the start all forms are
    }


        //script for adding and removing productss
        $(document).ready (function () {
            var i;
            $('.btnAdd').click (function () {
                i = formsavailable.indexOf(true);       
                $('.buttons').append(forms[i]); // end append
                formsavailable[i] = false;

                $('div .btnRemove').last().click (function () { 
                    $(this).parent().last().remove();    
                }); // end click
            }); // end click                

        }); // end ready
    </script>




</head>

<body>
<h2> text here </h2>
<div class="buttons">
<input type="button" class="btnAdd" value="Add"><br>         
</div>
<p> tekst </p>

<input type="button" value="Terug naar stap 1" onclick="goBack()">

</body>

var forms=Array();
var formsavaailable=Array();
forms=getProductconfigforms()//使用产品表单创建字符串列表
风险值形式的数量=5;

对于(var i=1;i您实际上不需要创建唯一的索引或唯一的名称。HTTP协议支持使用相同的名称发送多个数据点

例如,这很好:&name=me&name=you&name=themes&name=her。在后端,根据您使用的框架和语言,您只需获得一个数组

因此,在您的表单中,您可以使用

<label> Product 1 <input name="product_name" type="text" /></label>
<label> Product 2 <input name="product_name" type="text" /></label>
...
产品1
产品2
...

依此类推,直到您添加了任意数量的表单。提交表单时,页面会自动将表单发送到后端表单,您可以通过编程方式解析每个表单。

为什么表单需要不同的名称?表单名称不会提交。您好,谢谢您的回答。您如何解析它们然后?(我使用PHP)。我不知道这是可能的,从当时的答案我得到的印象是不可能的(?)在这种情况下,你只需要给它一个像product_name[]这样的名称,而不是product_name。PHP这样很奇怪。然后在PHP内部,你可以像任何其他数组一样访问它们。
$products=$\u POST['product_name']
ps:我注意到在为每个产品项包含复选框时有一个可重新标记的方面:当您为复选框定义一个数组(如$Product\U selection=$\U POST['productselection'];)时,所有选中的元素都放在数组的第一位(???)