首页 > 解决方案 > 未提交的附加字段值

问题描述

我在 PHP 中有一组表单字段。我还添加了 jQuery 功能来克隆一些字段并将它们添加到表单中。但是,在我提交表单后,仅提交原始字段,而不是通过克隆添加的字段。

PHP

<form id="myForm" method="post" action"...">
   <div class="row contRow">
        <div class="col-md-5">
            <input type="text" id="contactInputName['.$i.']" name="name['.$i.']" value="'.$output['0'].'" class="form-control" placeholder="Name">  &nbsp; &nbsp; 
        </div>

        <div class="col-md-6">
            <input type="text" id="contactInputEmail['.$i.']" name="email['.$i.']" value="'.trim($output['1']).'" class="emlVal form-control"> &nbsp; 
        </div>

        <div class="col-md-1 text-right">
            <span class="btn btn-default rmContact"><i class="fas fa-times fa-fw fa-lg text-danger"></i></span>
        </div>
    </div>

    <div class="row">
        <div class="col-md-12">
            <span id="saveContacts" class="btn btn-success"><i class="fas fa-check fa-fw fa-lg"></i> Save Contacts</span>
            <span id="addRow" class="btn btn-default"><i class="fas fa-plus-circle fa-fw fa-lg"></i> Add More</span>
        </div>
    </div>
</form>

JS

$(document).on("click", "#addRow", function() {
    var lastRow = $("#addContactsForm").find(".contRow").last();
    lastRow.clone().insertAfter(lastRow);
    lastRow.find("input").val("");
});

$(document).on("click", "#saveContacts", function() {
    $(this).closest("form").submit();
});

我错过了什么?

标签: phpjquery

解决方案


我会删除id="contactInputName['.$i.']"id="contactInputEmail['.$i.']"因为我认为不需要设置这些属性。

如果您使用空键设置名称属性,则会为您生成递增的键。例如

name="name[]"

name="email[]"

这应该可以消除克隆时复制索引的问题。


推荐阅读