Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery每个函数_Javascript_Php_Jquery_Ajax_Forms - Fatal编程技术网

Javascript Jquery每个函数

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

我试图使用each函数发布多个字段,我拥有的是我的常规字段,这些字段提交并添加到db fine中

一种功能,当用户到达填写表单的末尾和一个提交按钮时克隆字段

我正在尝试使用$.ajax为页面上的每个表单提交一次from值,它似乎只对第一个表单有效,没有添加任何重复的表单数据,这让我认为我可能正在使用。每个错误有人能解释一下我在这种情况下是如何使用它的吗?这是我的尝试

$(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”]”),但我的问题是选择器有问题,因此我将开始一个新问题,谢谢您的时间。您可以查看控制台日志以验证对象的格式是否正确。