Javascript Jquery每个函数
我试图使用each函数发布多个字段,我拥有的是我的常规字段,这些字段提交并添加到db fine中 一种功能,当用户到达填写表单的末尾和一个提交按钮时克隆字段 我正在尝试使用$.ajax为页面上的每个表单提交一次from值,它似乎只对第一个表单有效,没有添加任何重复的表单数据,这让我认为我可能正在使用。每个错误有人能解释一下我在这种情况下是如何使用它的吗?这是我的尝试Javascript Jquery每个函数,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我试图使用each函数发布多个字段,我拥有的是我的常规字段,这些字段提交并添加到db fine中 一种功能,当用户到达填写表单的末尾和一个提交按钮时克隆字段 我正在尝试使用$.ajax为页面上的每个表单提交一次from值,它似乎只对第一个表单有效,没有添加任何重复的表单数据,这让我认为我可能正在使用。每个错误有人能解释一下我在这种情况下是如何使用它的吗?这是我的尝试 $(function(){ var i = 0; var x = 0; $.datepicker.s
$(function(){
var i = 0; var x = 0;
$.datepicker.setDefaults($.datepicker.regional['']);
$.datepicker.formatDate( "yy-mm-dd");
$('#datepicker' ).datepicker();
$('.vat').each(function(i){
$(this).click(function(){
var id = "batchinvoice" + x.toString();
$('#batchinvoice').clone().attr("name", id).appendTo(".panel-body");
x++;
});
});
$('#submit').click(function(){
var propid = Array();
var date = Array();
var ref= Array();
var id= Array();
var desc= Array();
var vat= Array();
var net= Array();
$('#batchinvoice[name*="batchinvoice"]').each(function(i){
propid[i] = $('#sl_propid').val();
date[i] = $('.sl_date datepicker').val();
ref[i] = $('#sl_ref').val();
id[i] = $('#sl_nom_id').val();
desc[i] = $('#sl_desc').val();
vat[i] = $('#vat').val();
net[i] = $('#sl_net').val();
i++;
});
$.ajax({
type: 'POST',
url: '<?php echo base_url(); ?>FinancialInput/addInvoiceToLedger',
data: { propid : propid, date:"date", ref: ref, id: id, desc: desc, vat: vat, net: net},
sucess: function(e){
alert(e.error);
},
error: function(e){
alert(e.error);
}
});
});
});
$(函数(){
VarI=0;VarX=0;
$.datepicker.setDefaults($.datepicker.regional['');
$.datepicker.formatDate(“yy-mm-dd”);
$('#datepicker')。datepicker();
$('.vat')。每个(功能(i){
$(此)。单击(函数(){
var id=“batchinvoice”+x.toString();
$('#batchinvoice').clone().attr(“name”,id).appendTo(“.panel body”);
x++;
});
});
$(“#提交”)。单击(函数(){
var propid=Array();
var date=Array();
var ref=Array();
var id=Array();
var desc=Array();
var vat=数组();
var net=Array();
$('#batchinvoice[name*=“batchinvoice”]')。每个(函数(i){
propid[i]=$('#sl_propid').val();
日期[i]=$('.sl_date datepicker').val();
ref[i]=$('#sl_ref').val();
id[i]=$('sl#nom_id').val();
desc[i]=$('#sl_desc').val();
增值税[i]=$(“#增值税”).val();
net[i]=$('#sl_net').val();
i++;
});
$.ajax({
键入:“POST”,
url:'FinancialInput/addInvoiceToLedger',
数据:{propid:propid,date:“date”,ref:ref,id:id,desc:desc,vat:vat,net:net},
成功:功能(e){
警报(即错误);
},
错误:函数(e){
警报(即错误);
}
});
});
});
.vat是触发克隆的字段#submit是一个submit按钮,.batchinvoice是每个克隆表单(以及原始表单)的类
关于这一点,我读到的所有内容都是基础教程,感谢任何帮助,为阅读喝彩:)
您绝对不想要的是循环中的ajax调用 你想要的是:
var propid = Array(),
date = Array(),
refe= Array(),
id= Array(),
desc= Array(),
vat= Array(),
net= Array();
$('.batchinvoice').each(function(i){
propid[i] = $('#sl_propid').val();
date[i] = $('#sl_date').val();
refe[i] = $('#sl_ref').val();
id[i] = $('#sl_nom_id').val();
desc[i] = $('#sl_desc').val();
vat[i] = $('#vat').val();
net[i] = $('#sl_net').val();
}
$.ajax({
type: 'POST',
url: '<?php echo base_url(); ?>FinancialInput/addInvoiceToLedger',
data: { propid : propid, date: date, refe: refe, id: id, desc: desc, vat: vat, net: net},
sucess: function(e){
alert(e);
},
error: function(e){
alert(e);
}
});
var propid=Array(),
日期=数组(),
refe=数组(),
id=数组(),
desc=数组(),
vat=数组(),
net=Array();
$('.batchinvoice')。每个(函数(i){
propid[i]=$('#sl_propid').val();
日期[i]=$('sl_date').val();
refe[i]=$('#sl_ref').val();
id[i]=$('sl#nom_id').val();
desc[i]=$('#sl_desc').val();
增值税[i]=$(“#增值税”).val();
net[i]=$('#sl_net').val();
}
$.ajax({
键入:“POST”,
url:'FinancialInput/addInvoiceToLedger',
数据:{propid:propid,date:date,refe:refe,id:id,desc:desc,vat:vat,net:net},
成功:功能(e){
警报(e);
},
错误:函数(e){
警报(e);
}
});
请参见下面代码中的注释问题在于您的id使用不当。这:
$('#batchinvoice[name*="batchinvoice"]')
应仅返回一条记录,因为它基于id
这可以起到以下作用:
$('form[name*="batchinvoice"]')
但我更喜欢
$('form.batchinvoice')
使用body单击发送ajax帖子和“vac”输入以添加新表单
你能为我们提供一些代码吗,包括HTML部分,当然,首先应该这样做,抱歉,哈哈,现在将对其进行排序:)嘿,谢谢,我现在明白你的意思了,但是代码仍然不工作,它有错误,我已经纠正了,但它仍然只提交了一次。这就是你得到一次提交,但是里面有所有数据,进行打印(发布$);你会看到答案的。对不起,我认为我说得不够清楚,它确实返回了一个数组,我在其中循环并将它们添加到数据库,但它一次又一次地添加相同的记录(第一个表单),我认为这可能与选择器有关?回答这个问题:“我认为这可能与选择器有关”我们显然需要HTML。这段代码仍然很奇怪,为什么要使用each和select#ids。Id=Identification您拥有的Id不能是相同Id的两倍。我的观点是,您应该避免在循环中执行ajax调用,这仍然是可行的。在JS Fiddle链接中,最初的问题已经存在了一段时间。现在它只是将最后一个字段的数据输入数据库,仍然存在相同的问题,我已经更改了表单的类,并尝试了$('form.batchinvoice')和$('form[name*=“batchinvoice”]”),但我的问题是选择器有问题,因此我将开始一个新问题,谢谢您的时间。您可以查看控制台日志以验证对象的格式是否正确。