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 用vmmare虚拟机用sentaurus仿真的时候,调用terminal程序,输入swb指令弹出这个,打不开workbench,桌面上面的sentaurus workbench也打不开
  • ¥75 使用winspool.drv的SetPrinter设置打印机失败
  • ¥15 simulink 硬件在环路仿真
  • ¥15 python动态规划:N根火柴摆出的最大数字
  • ¥20 (标签-excel)
  • ¥200 求idea10和MyEclipse7.1
  • ¥20 vb6.0截取当前窗体保存为jpg文件
  • ¥20 苹果手机不使用大疆sdk怎么获取遥控器控制信息或如何接入大疆sdk并且成功上架sdk
  • ¥20 woocommerce 注册按键重定向
  • ¥100 求书法图像文字切割代码