[ajax] How miss history when back event ?

administrator

Administrator
Nhân viên
9 Tháng tám 2021
87
0
6
I need push param url when select item!
Mã:
function filterSelectOption(id) {
        var objId = {};
        const url = new URL(window.location);
        url.searchParams.set('page', '1');
        id.forEach(element => {
            if (element !== '') {
                arrSplit = element.split("=");
                objId[arrSplit[0]] = arrSplit[1];
                url.searchParams.set(arrSplit[0], arrSplit[1]);
            }
        });
        window.history.pushState({}, '', url);
        // console.log(objId);
        $.ajax({
            type: 'GET',
            url: '/user/list', //"{{route('list'')}}"
            data: objId,
            success: (data) => {
                $('#tblData').html(data.result);
                $('#pagination').html(data.pagination);
                console.log(objId);
            },
            error: (err) => {
                console.log({
                    err
                });
            }
        });
;
 
Chỉnh sửa lần cuối:

administrator

Administrator
Nhân viên
9 Tháng tám 2021
87
0
6
How use get value checkbox with ajax
Mã:
 $(document).ready(function() {
        $("#allDataTable").DataTable();

        $("li#all").click(function() {
            checkedValues = getCheckboxValues();
            urlPath = '/admin/users/all';
            window.history.pushState(checkedValues, "", urlPath);
            getDataAjax(checkedValues, 'all');
        });

        function getCheckboxValues() {
            checkedValues = [];
            var checkRole = document.getElementById("checkRole");
            var checkTeam = document.getElementById("checkTeam");
            if (checkRole.checked == true) {
                var checkboxValue = checkRole.value;
                checkedValues.push(checkboxValue);
            }
            if (checkTeam.checked == true) {
                var checkboxValue = checkTeam.value;
                checkedValues.push(checkboxValue);
            }
            return checkedValues;
        }

        function getDataAjax(checkedValues, sortAssign) {
            urlPath = '/admin/users/' + sortAssign;
            window.history.pushState(checkedValues, "", urlPath);
            $.ajax({
                type: 'GET',
                url: '/admin/users/all',
                data: {
                    sortAssign: sortAssign,
                    checkedValues: checkedValues,
                },
                beforeSend: function() {
                    $("#loading").show();
                },
                complete : function() {
                    $("#loading").hide();
                },
                success: (data) => {
                    $('#datatable-ajax').html(data);
                },
                error: (err) => {
                    console.log(err);
                }
            });
        }

        $('#checkRole').click(function(){
            checkedValues = getCheckboxValues();
            urlPath = window.location.pathname
            if (urlPath.includes('assignment')) {
                getDataAjax(checkedValues, 'assignment');
            } else {
                getDataAjax(checkedValues, 'all');
            }
        });

        $('#checkTeam').click(function(){
            checkedValues = getCheckboxValues();
            urlPath = window.location.pathname
            if (urlPath.includes('assignment')) {
                getDataAjax(checkedValues, 'assignment');
            }
            else {
                getDataAjax(checkedValues, 'all');
            }
        });

        $("li#assignment").click(function() {
            checkedValues = getCheckboxValues();
            urlPath = '/admin/users/assignment';
            window.history.pushState(checkedValues, "", urlPath);
            getDataAjax(checkedValues, 'assignment');
        });
    });