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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?