doujiyuan0211 2019-05-07 12:02
浏览 290
已采纳

将序列化表单与其他数据参数一起传递

I have a jQuery ajax function and would like to submit an entire form as post data and will transfer some data parameter as well.

var serial = $("#formProjectBilling").serialize();

$.ajax({
    url: base_url+"sales/Sales_invoice_form/saveSalesInvoice",
    type: 'post',
    data: serial + { 
        'orderItems': orderItems, 
        'orderTotal': totalamt, 
        'freight': freight,
        'gen_disc':gen_disc,
        'otp': otp,
        'notes': $("#notes").val(),
        'idno': $("#idno").val(),
        'acctno': $("#hdnAcctNo").val(),
        'itemlocid': $("#location_id").val(),
        'shipping_id': $("#shipping_id").val(),
        'sales_date': $("#sales_date").val(),
        'discamt': $("#discount").text(),
        'gendisctype': $("#gen_disc_type").val()
    },

It only transfers the serialized form, but not the other data in parameters.

  • 写回答

3条回答 默认 最新

  • dousi6087 2019-05-07 12:12
    关注

    First you need to convert your object to url param query:

    var str = "";
    for (var key in yourData) {
        if (str != "") {
            str += "&";
        }
        str += key + "=" + yourData[key];
    }
    

    then into your ajax in the line where you pass data, just use the converted url:

    ...
    data: serial + '&' + str;
    ...
    

    Full Code:

    var serial = $("#formProjectBilling").serialize();
    // your data
    var data = {
      'orderItems': orderItems,
      'orderTotal': totalamt,
      'freight': freight,
      'gen_disc': gen_disc,
      'otp': otp,
      'notes': $("#notes").val(),
      'idno': $("#idno").val(),
      'acctno': $("#hdnAcctNo").val(),
      'itemlocid': $("#location_id").val(),
      'shipping_id': $("#shipping_id").val(),
      'sales_date': $("#sales_date").val(),
      'discamt': $("#discount").text(),
      'gendisctype': $("#gen_disc_type").val()
    }
    // conversion object to url params
    var str = "";
    for (var key in data) {
      if (str != "") {
        str += "&";
      }
      str += key + "=" + data[key];
    }
    
    $.ajax({
      url: base_url + "sales/Sales_invoice_form/saveSalesInvoice",
      type: 'post',
      data: serial + '&' + str
    })
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵