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条)

报告相同问题?

悬赏问题

  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面