Javascript 我需要使用ajax提交附加函数添加的附加字段

Javascript 我需要使用ajax提交附加函数添加的附加字段,javascript,php,jquery,ajax,append,Javascript,Php,Jquery,Ajax,Append,关于使用ajax提交附加字段,我遇到了一个障碍 这是我问题的描述 我的HTML表单是 <div id="append-fields"> <input name="firstName[]" id="firstName" value="john"></input> <input name="lastName[]" id="lastName" value="Doe"></input> </div> <butt

关于使用ajax提交附加字段,我遇到了一个障碍

这是我问题的描述

我的HTML表单是

<div id="append-fields">
    <input name="firstName[]" id="firstName" value="john"></input>
    <input name="lastName[]" id="lastName" value="Doe"></input>
</div>
<button onclick="appendFunction()" type="button">Add a new row</button>
现在我需要用ajax提交以下数据

        firstName = 'john',lastName = 'Doe'
        firstName = 'anna',lastName = 'kondo'
但我只得到一组这样的数据

    <div id="append-fields">
      <input name="firstName[]" id="firstName" value="anna"></input>
      <input name="lastName[]" id="lastName" value="Kondo"></input>
    </div>
     firstName = 'john',lastName = 'Doe'
这是我的脚本

        <script>
        insert = [];
        insert[0] = $("#firstName").val();
        insert[1] = $("#lastName").val();
        $.ajax({
            url: 'myUrl',
            method: 'POST',
            data: {take:insert},
            error: function () {
            },
            success: function (response) {
                $('#overlay').addClass("hidden");
                jQuery('#body').html(response);
            }
        });
   </script>

错误在哪里?

您不应该按ID获取数据值,因为不可能有多个相同的ID元素

由于您仍在使用jquery,因此请使用数组输出的
$('form').serialize()
$('form').serializeArray()
来获取所有表单输入及其值。在执行此操作之前,必须将这些输入包装到表单元素中

或者如上所述,手动循环元素并获得类似的值。

您可以使用formdata

    var data = new FormData($('form')[0]);
    data .append('extra', add_data);
或者按类序列化或序列化数组

var form_data = $('.post_these').serialize();
PS:post_这些是输入字段类

在PHP中按名称访问

$firstName = $_POST['firstName'];
或者当数据是数组时,创建一个对象

$data= (object) $_POST['data'];
$data-YfirstName; // use this way    
PS使用此功能进行调试,检查控制器中接收到的内容

echo '<pre>';
print_r($_POST);
echo '</pre>';
exit();
echo';
打印(邮政美元);
回声';
退出();

您不能(如果您想让事情正常运行)让2个
id
属性具有与
id=“firstName”相同的名称
每个添加的html块都有一个。如果使这些
id
唯一,则可以将它们添加到ajax调用中的数据结构中,或者在类名上使用
将它们添加到ajax调用中的数据结构中。
谢谢!但我需要知道如何将字段名与值分开?因为接收到的数据如下所示:firstName=john&lastName=Doe&firstName=anna&lastName=kondo
echo '<pre>';
print_r($_POST);
echo '</pre>';
exit();