簡體   English   中英

如何使用jquery在ajax成功后停止增量存儲數組?

[英]How to stop increment stored array after ajax success using jquery?

我將兩個輸入值存儲在數組中。 數組值將顯示在HTML表中。 單擊最終保存后,所有值都應保存到數據庫。 當Ajax在Save(不重新加載頁面)上成功時,如何清除此HTML表,因為下一次它將顯示前一個數組。 我不想顯示以前的數組。 我已經嘗試了document.getElementById(“ result_pay_modedetails”)。innerHTML =“”; 根本沒有清除數組表。它只是連續數組。ajax成功后如何做新數組?

這是我在表中存儲數組值的函數。

var z = 0;
var x = 0;
var array = Array();
var array1 = Array();

function add_element_to_array() {
    var amtpatvalue = document.getElementById("amount_to_pay").value;
    array[x] = parseFloat(amtpatvalue).toFixed(2);
    array1[z] = $('input[name=pay]:checked', '#paymode').val();
    x++;
    z++;
}

function display_array() {
    var e = "<table id='pay' border=1 style=''>";
    alert(array.length)
    for (var y = 0; y < array.length; y++) {
        e += "<tr>";
        e += "<td><input class='paymodeamt getdata' id='paymodeamt' name='paymodeamt' value='" + array[y] + "'></td><td><input class='storepaymode getdata' id='storepaymode' name='storepaymode' value='" + array1[y] + "'></td>";
        e += "</tr>";
        //var paymentResult = array1[y] + ":" + array[y] + " ";
    }
    e += "</table>";
    document.getElementById("result_pay_modedetails").innerHTML = e;//HTML table will show in this div
    return e;
}

單擊最終保存時的ajax功能

function saveData() { //save data

    var paymodeamt = [];
    var storepaymode = [];

    $('.paymodeamt').each(function () {
        paymodeamt.push($(this).val());
    });

    $('.storepaymode').each(function () {
        storepaymode.push($(this).val());
    });

    if (parseFloat(advamt) > 0) {

        var getlastID = $('#getlastID').val();
        $.ajax({
            type: "POST",
            url: "save.php",
            data: {

                getinvoiceid: getlastID,
                getstorepaymode: storepaymode,
                getamount: paymodeamt
            },
            success: function (data) {
                //$('#pay tbody').html('');
                //$("#pay").empty();
                //$("#pay tbody tr").remove(); 
                //$("#result_pay_modedetails").empty();
                document.getElementById("result_pay_modedetails").innerHTML = " ";
                $(".paymodeamt").val(' ');
                $(".storepaymode").val(' ');

            }
        }) //ajax close payment mode
    }
} //end save process

完成異步操作后,您需要重置變量:

        success: function (data) {
            //$('#pay tbody').html('');
            //$("#pay").empty();
            //$("#pay tbody tr").remove(); 
            //$("#result_pay_modedetails").empty();
            document.getElementById("result_pay_modedetails").innerHTML = " ";
            $(".paymodeamt").val(' ');
            $(".storepaymode").val(' ');

            z = 0;
            x = 0;
            array.length = 0; // empties the array
            array1.length = 0; // empties the array
        }

更好的方法是完全刪除這些全局變量,因為全局變量只會使您痛苦。 但這是一個更大的問題,超出了您的問題范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM