Jquery - кнопка поиска всегда получает одинаковые данные для события первого клика - PullRequest
0 голосов
/ 12 октября 2018

Я хочу получить данные из удаленной базы данных с помощью вызова ajax.Моими критериями поиска являются минимальная дата, максимальная дата, выбираемые типы, и у меня есть кнопка поиска.Моя проблема в том,когда я нажимаю кнопку поиска, система работает правильно, но если я изменяю критерии поиска и снова нажимаю кнопку поиска, я получаю результаты первого клика.Что мне делать в этой ситуации?

Большое вам спасибо.

$('#openDialog').dialog({height:400, width:545, autoOpen:false});
$('#objectTypeSelected').selectable();
$('#searchBtnObjects').click(function (evt) {
	searchBtnObjectsClick();
});

function searchBtnObjects() {

    var types = [];
    var begin = $("#minDate").val();
    var end = $("#maxDate").val();

    var selectedTypes = $(".ui-selected");
    var typeString ="";
    for (var i = 0; i < selectedTypes.length; i++) {
        types[i] = $(".ui-selected")[i].id;
        typeString=typeString+$(".ui-selected")[i].id+",";
    }
    if (objectsTable != null) {
        var postData = {
            ajaxRequest:document.helper.getPageName(),
            directAjaxMode:true,
            types:typeString,
            begin:begin,
            end:end}
        objectsTable.jqGrid("setGridParam", {postData:postData});
        objectsTable.trigger('reloadGrid');
    }
    else{
        objectsTable = $('#objectList').jqGrid({
                datatype:'json',
                colModel:[
                    {name:"ID", label:messageDictionary["ID"], editable:false, formatter:cc_formatter, unformat:cc_unformatter, index:"ID"},
                    {name:"DATE", label:messageDictionary["DATE"], editable:false, formatter:'date', formatoptions:{srcformat:'d/m/Y H:i:s', newformat:'d/m/Y H:i:s'}, index:"DATE"}
                ],
                mtype:'POST',
                multiselect:true,
                pager:'#objectsPager',
                postData:{
                    ajaxRequest:document.helper.getPageName(),
                    directAjaxMode:true,
                    types:typeString,
                    begin:begin,
                    end:en},
                url:'search/getObjects',
                jsonReader:{ repeatitems:false, cell:"", id:"id", userdata:"jsonModel", root:"rows" },
                ignoreCase:true,
                height:80,
                autowidth: true,
                shrinkToFit:true,
                sortname:'ID',
                sortorder:"asc",
                loadonce:true,
                rowNum:30,
                rowList:[30, 50, 100],
                rownumbers:true,
                viewrecords:true
            }
        );
	}
}

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

У вас проблема с параметром в настройках jqGrid

loadonce: true

Этот параметр автоматически устанавливает тип данных как локальный после первого создания сетки.

Чтобы продолжить запрос к серверу, вам необходимо удалить этот параметр или установить его в значение false

loadonce : false;

Подробнее о параметрах jqGrid вы можете увидеть в нашей новой документацииздесь

0 голосов
/ 12 октября 2018

Вы должны очистить поля, как только получите результаты поиска, как показано ниже.

$("form").trigger("reset");

См .: clearing-my-form-input-after-submit-after-submit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...