Использование Dojo и jqgrid с codeigniter

Я использую библиотеку dojo и jqgrid с codeigniter. он работает нормально. Я реализовал dojo для пользовательского интерфейса и jqgrid для вывода данных из базы данных. почти нормально работает. когда я выполнял такие операции, как вставка, обновление, удаление, jqgrid не отражал изменения. Менас не перезагружает данные из базы данных. Вот мой код.

$.ajax({
    type: "POST",
    url: sitepath+"factory/addfactory",
    dataType: "json",
    data:{factory_name:factory_name,address:address,city:city,state:state,country:country,pincode:pincode,active:active},
        success:function(){
        }
    });
dijit.byId('dialogAddFactory').hide();
reload_grid(); ]

function reload_grid()
{
    $("#factorylist").trigger("reloadGrid"); 
}

выше вызов ajax предназначен для вставки в базу данных. а функция reload_grid() предназначена для перезагрузки jqgrid. он покажет мне в консоли, что данные идеальны, но не показывает меня в сетке. иногда он показывает меня, а иногда нет.


person JigneshMistry    schedule 14.02.2012    source источник
comment
с помощью фаербага? показывает вам ошибку? что произойдет, если вы поместите триггер прямо в действие ajax?   -  person csotelo    schedule 31.07.2012
comment
У вас есть общедоступный URL-адрес, который мы можем посмотреть?   -  person seangates    schedule 12.09.2012


Ответы (2)


кажется, что reload_grid() выполняется до ответа ajax. либо используйте асинхронный режим, либо перезагрузите сетку после ответа ajax.

метод – I: используйте асинхронный режим

$.ajaxSetup({async: false});
$.ajax({
    type: "POST",
    url: sitepath+"factory/addfactory",
    dataType: "json",
    data:{factory_name:factory_name,address:address,city:city,state:state,country:country,pincode:pincode,active:active},
        success:function(){
        }
});
dijit.byId('dialogAddFactory').hide();
reload_grid();
function reload_grid()
{
    $("#factorylist").trigger("reloadGrid");
}

метод - II: перезагрузить сетку после ответа ajax.

$.ajax({
    type: "POST",
    url: sitepath+"factory/addfactory",
    dataType: "json",
    data:{factory_name:factory_name,address:address,city:city,state:state,country:country,pincode:pincode,active:active},
        success:function(){
            dijit.byId('dialogAddFactory').hide();
            reload_grid();
        }
});
function reload_grid()
{
    $("#factorylist").trigger("reloadGrid");
}
person sujoy    schedule 29.07.2014

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

    success:function(data){
       $("#factorylist").trigger("reloadGrid"); 
       console.log('ok'); 
    }
person san4o    schedule 10.03.2013