簡體   English   中英

Ajax成功后,分配的變量未全局更改

[英]The variable assigned is not globally changed after ajax success

在此頁面中,我有一個帶有分頁的表格。 在分頁部分中,類別為“ first”的''顯示第一頁記錄,類別“ last”為末頁,類別“ next”顯示下一個后續數據。 這些所有功能均正常運行。 但是我的問題是,當我單擊類為'last'的''時,它正在顯示最后一頁記錄。 之后,當我單擊“上一個”類的“ td”時,它必須在最后一個記錄之前顯示這些記錄。

例如,如果有17頁,並且如果我單擊最后一頁,那么它將顯示第17頁,但是當我單擊“上一頁”時,它必須顯示16頁,而不是其他頁。

所以我嘗試的是ajax成功后更新頁碼,但是此值在頁面中沒有全局更改。

誰能幫我這個忙。 謝謝。

以下是我的代碼。

<div class="container">
    <div class="row">
        <table id="display_result">
        </table>
        <table id="pagination">
            <tr>
                <td><div class="first">|&lt;</div></td>
                <td><div class="previous">&lt;</div></td>
                <td><div class="next">&gt;</div></td>
                <td><div class="last">&gt;|</div></td>
            </tr>
        </table>
    </div>
</div>

$(function(){
    var page;

    function displayData(ip, page, isLast){
        var input = ip;
        var datas = {
            'input': input,
            'page':page,
            'isLast':isLast
        }

        $.ajax({
            url: "getData.php",
            type: 'post',
            dataType: 'json',
            success: function (data) {
                var response = data.result;
                page = data.page;
                $("#display_result").html('');
                $.each(response, function(i, item) {
                    $('<tr>').html(
                        "<td>" + response[i].line + "</td></tr>").appendTo('#display_result');
                });
            },
            async:false,
            data: datas
        });
    }

    $("#pagination").delegate('td div', 'click', function(e) {
        e.preventDefault();
        var filename = $('#myInput').val().split('\\');
        if ($(this).hasClass("first")){
            page = 0;
            displayData(filename[2], page, false);
        }
        if ($(this).hasClass("previous")){
            page = page - 1;
            displayData(filename[2], page, false);
        }
        if ($(this).hasClass("next")){
            page = page + 1;
            displayData(filename[2], page, false);
        }
        if ($(this).hasClass("last")){
            displayData(filename[2], page, true);
        }
    });
})

我通過添加新功能解決了這個問題

function set_page(val){
    page = val;
}

然后在ajax成功時,我通過了更新的頁面

page = data.page;
set_page(page);

這為我解決了。

暫無
暫無

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

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