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 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码