Javascript 我需要使用ajax提交附加函数添加的附加字段
关于使用ajax提交附加字段,我遇到了一个障碍 这是我问题的描述 我的HTML表单是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
<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();