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

Използвам dojo и jqgrid библиотека с codeigniter. работи добре. Внедрих dojo за ui и jqgrid за изброяване на данни от база данни. почти работи добре. когато предприех операции като , вмъкване, актуализиране, изтриване, jqgrid не отразява промените. menas не презарежда данни от база данни. Ето моя код.

$.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
използвайки firebug? ти показва грешка? какво се случва, ако поставите тригера директно в действието ajax?   -  person csotelo    schedule 31.07.2012
comment
Имате ли публичен URL адрес, който да разгледаме?   -  person seangates    schedule 12.09.2012


Отговори (2)


изглежда, че reload_grid() се изпълнява преди отговора на ajax. или използвайте async, или презаредете мрежата след отговор на 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