diank diank - 6 months ago 6
Ajax Question

jQuery AJAX data multiple parameters

I have code that is passed many times, but at a certain condition there is a small difference, but part of it is the same. How can I declare that the code is the same and adds it to the rest of the code?
This is my code:

function sendData() {

// I want to declare a variable here with all SameParmX here

if(window.confirmCopmanyName == "A") {
var data = {
SameParm1: $("#SameParm1").val(),
SameParm2: $("#SameParm2").val(),
SameParm3: $("#SameParm3").val(),
SameParm4: $("#SameParm4").val(),
SameParm5: $("#SameParm5").val(),
SameParm6: $("#SameParm6").val(),

DueAmount_1 : $("#DueAmount_1").val(),
DueDate_1 : $("#DueDate_1").val(),
PaymentNumber_1 : $("#PaymentNumber_1").val(),
GFStatus_1 : $("#GFStatus_1").val(),
BillNumber_1 : $("#BillNumber_1").val(),
DueAmount_2 : $("#DueAmount_2").val(),
DueDate_2 : $("#DueDate_2").val(),
PaymentNumber_2 : $("#PaymentNumber_2").val(),
GFStatus_2 : $("#GFStatus_2").val(),
BillNumber_2 : $("#BillNumber_2").val(),
DueAmount_3 : $("#DueAmount_3").val(),
DueDate_3 : $("#DueDate_3").val(),
PaymentNumber_3 : $("#PaymentNumber_3").val(),
GFStatus_3 : $("#GFStatus_3").val(),
BillNumber_3 : $("#BillNumber_3").val(),
DueAmount_4 : $("#DueAmount_4").val(),
DueDate_4 : $("#DueDate_4").val(),
PaymentNumber_4 : $("#PaymentNumber_4").val(),
GFStatus_4 : $("#GFStatus_4").val(),
BillNumber_4 : $("#BillNumber_4").val()
};
} else if (window.confirmCopmanyName == "B") {
var data = {
SameParm1: $("#SameParm1").val(),
SameParm2: $("#SameParm2").val(),
SameParm3: $("#SameParm3").val(),
SameParm4: $("#SameParm4").val(),
SameParm5: $("#SameParm5").val(),
SameParm6: $("#SameParm6").val(),

SumStk: "1.40" // Сума стикер
ODueAmount_1 : $("#ODueAmount_1").val(),
ODueDate_1 : $("#ODueDate_1").val(),
OPaymentNumber_1 : $("#OPaymentNumber_1").val(),
OGFStatus_1 : $("#OGFStatus_1").val(),
OBillNumber_1 : $("#OBillNumber_1").val(),
ODueAmount_2 : $("#ODueAmount_2").val(),
ODueDate_2 : $("#ODueDate_2").val(),
OPaymentNumber_2 : $("#POaymentNumber_2").val(),
GFStatus_2 : $("#OGFStatus_2").val(),
OBillNumber_2 : $("#OBillNumber_2").val(),
ODueAmount_3 : $("#ODueAmount_3").val(),
ODueDate_3 : $("#ODueDate_3").val(),
OPaymentNumber_3 : $("#OPaymentNumber_3").val(),
OGFStatus_3 : $("#OGFStatus_3").val(),
OBillNumber_3 : $("#OBillNumber_3").val(),
ODueAmount_4 : $("#ODueAmount_4").val(),
ODueDate_4 : $("#ODueDate_4").val(),
OPaymentNumber_4 : $("#OPaymentNumber_4").val(),
OGFStatus_4 : $("#OGFStatus_4").val(),
OBillNumber_4 : $("#OBillNumber_4").val(),
};
} else if(window.confirmCopmanyName == "C") {
var data = {
SameParm1: $("#SameParm1").val(),
SameParm2: $("#SameParm2").val(),
SameParm3: $("#SameParm3").val(),
SameParm4: $("#SameParm4").val(),
SameParm5: $("#SameParm5").val(),
SameParm6: $("#SameParm6").val(),

DueDate0: $("#padejDate_0").val(),
DueDate1: $("#padejDate_1").val(),
DueDate2: $("#padejDate_2").val(),
DueDate3: $("#padejDate_3").val(),
DueAmount0: $("#totalInstall_0").val(),
DueAmount1: $("#totalInstall_1").val(),
DueAmount2: $("#totalInstall_2").val(),
DueAmount3: $("#totalInstall_3").val(),
};
} else if(window.confirmCopmanyName == "D") {
var data = {
SameParm1: $("#SameParm1").val(),
SameParm2: $("#SameParm2").val(),
SameParm3: $("#SameParm3").val(),
SameParm4: $("#SameParm4").val(),
SameParm5: $("#SameParm5").val(),
SameParm6: $("#SameParm6").val(),

DueDate0 : $("#paydate_0").val(),
DueDate1 : $("#paydate_1").val(),
DueDate2 : $("#paydate_2").val(),
DueDate3 : $("#paydate_3").val(),
DueAmount0 : $("#installments_0").val(),
DueAmount1 : $("#installments_1").val(),
DueAmount2 : $("#installments_2").val(),
DueAmount3 : $("#installments_3").val(),
};
}
data = $.param(data);
return data;
}

function writeLoc() {
$.ajax({
global: false,
type: 'POST',
url: 'myurl.php',
dataType: 'json',
data: sendData(),
cache: false,
timeout: 60000,
success: function(result) {
console.log(result);
},
error: function (request, status, error) {
serviceError();
}
});
}


Thanks in advance.

Answer

You have to create a first object with the common parameters and then a second with the specific ones, and then merge it:

    function sendData() {

    /* Here you put the common parameters*/
    same_obj={
            SameParm1: $("#SameParm1").val(), 
            SameParm2: $("#SameParm2").val(),
            SameParm3: $("#SameParm3").val(),
            SameParm4: $("#SameParm4").val(),
            SameParm5: $("#SameParm5").val(),
            SameParm6: $("#SameParm6").val()}
    /* then you put the specific ones */
    if(window.confirmCopmanyName == "A") {
        var data = {    DueAmount_1 : $("#DueAmount_1").val(),
            DueDate_1 : $("#DueDate_1").val(),
            PaymentNumber_1 : $("#PaymentNumber_1").val(),
            GFStatus_1 : $("#GFStatus_1").val(),
            BillNumber_1 : $("#BillNumber_1").val(),
            DueAmount_2 : $("#DueAmount_2").val(),
            DueDate_2 : $("#DueDate_2").val(),
            PaymentNumber_2 : $("#PaymentNumber_2").val(),
            GFStatus_2 : $("#GFStatus_2").val(),
            BillNumber_2 : $("#BillNumber_2").val(),
            DueAmount_3 : $("#DueAmount_3").val(),
            DueDate_3 : $("#DueDate_3").val(),
            PaymentNumber_3 : $("#PaymentNumber_3").val(),
            GFStatus_3 : $("#GFStatus_3").val(),
            BillNumber_3 : $("#BillNumber_3").val(),
            DueAmount_4 : $("#DueAmount_4").val(),
            DueDate_4 : $("#DueDate_4").val(),
            PaymentNumber_4 : $("#PaymentNumber_4").val(),
            GFStatus_4 : $("#GFStatus_4").val(),
            BillNumber_4 : $("#BillNumber_4").val()
        };
    } else if (window.confirmCopmanyName == "B") {
        var data = {                SumStk: "1.40" // Сума стикер
            ODueAmount_1 : $("#ODueAmount_1").val(),
            ODueDate_1 : $("#ODueDate_1").val(),
            OPaymentNumber_1 : $("#OPaymentNumber_1").val(),
            OGFStatus_1 : $("#OGFStatus_1").val(),
            OBillNumber_1 : $("#OBillNumber_1").val(),
            ODueAmount_2 : $("#ODueAmount_2").val(),
            ODueDate_2 : $("#ODueDate_2").val(),
            OPaymentNumber_2 : $("#POaymentNumber_2").val(),
            GFStatus_2 : $("#OGFStatus_2").val(),
            OBillNumber_2 : $("#OBillNumber_2").val(),
            ODueAmount_3 : $("#ODueAmount_3").val(),
            ODueDate_3 : $("#ODueDate_3").val(),
            OPaymentNumber_3 : $("#OPaymentNumber_3").val(),
            OGFStatus_3 : $("#OGFStatus_3").val(),
            OBillNumber_3 : $("#OBillNumber_3").val(),
            ODueAmount_4 : $("#ODueAmount_4").val(),
            ODueDate_4 : $("#ODueDate_4").val(),
            OPaymentNumber_4 : $("#OPaymentNumber_4").val(),
            OGFStatus_4 : $("#OGFStatus_4").val(),
            OBillNumber_4 : $("#OBillNumber_4").val(),
        };
    } else if(window.confirmCopmanyName == "C") {
        var data = {DueDate0: $("#padejDate_0").val(),
            DueDate1: $("#padejDate_1").val(),
            DueDate2: $("#padejDate_2").val(),
            DueDate3: $("#padejDate_3").val(),
            DueAmount0: $("#totalInstall_0").val(),
            DueAmount1: $("#totalInstall_1").val(),
            DueAmount2: $("#totalInstall_2").val(),
            DueAmount3: $("#totalInstall_3").val(),
        };
    } else if(window.confirmCopmanyName == "D") {
        var data = {DueDate0 : $("#paydate_0").val(),
            DueDate1 : $("#paydate_1").val(),
            DueDate2 : $("#paydate_2").val(),
            DueDate3 : $("#paydate_3").val(),
            DueAmount0 : $("#installments_0").val(),
            DueAmount1 : $("#installments_1").val(),
            DueAmount2 : $("#installments_2").val(),
            DueAmount3 : $("#installments_3").val(),
        };
    }
    Object.assign(data,same_obj) /* NOW we merge data!*/
    data = $.param(data);
    return data;
}

function writeLoc() {
    $.ajax({
        global: false,
        type: 'POST',
        url: 'myurl.php',
        dataType: 'json',
        data: sendData(),
        cache: false,
        timeout: 60000,
        success: function(result) {
            console.log(result);
        },
        error: function (request, status, error) {
            serviceError();
        }
    });
}
Comments