2012-04-27 54 views
0

如果选择了3个组合框,我有一个搜索,选定的valueid通过$ POST发送,然后通过AJAX发送给PHP。如何把JSON放入EXTJS Grid?

PHP从combobox id的一个mysql查询构建并将其作为JSON发回。 (JSON验证)

但我的网格没有填充!我如何把id数据过滤到我的网格中?

我的按钮

buttons:[ 
      { 
       text:'Search', 
       loadingText:'lädt', 
       handler:function() { 
        var form = Ext.getCmp('searchPanel').getForm(); 
        form.submit(
         {url: 'php/search.php'} 

       ) 

MY验证JSON

"getRoutedata": [ 
    { 
     "RouteID": "3", 
     "Loadingpoint": "Hafencity", 
     "Postalcode": "20457", 
     "Containercity": "Uhlenhorst", 
     "Carrier": "Bre SO", 
     "Transportmodel": "Truck", 
     "Containersize": "40", 
     "Containertype": "Horizontal", 
     "Harbor": "Antwerpen", 
     "Price": "1000.00", 
     "Year": "2012", 
     "Misc": "test" 
    } 
] 

我的商店

storePPT = new Ext.data.JsonStore({ 
    url:'php/search.php', 
    storeId:'myStore', 
    root:'getRoutedata', 
    stateful:true, 
    idProperty:'RouteID', 
    fields:[ 
     {name:'Carrier', type:'string', mapping:'Carrier'}, 
     {name:'Containercity', type:'string', mapping:'Containercity'}, 
     {name:'Containersize', type:'string', mapping:'Containersize'}, 
     {name:'Containertype', type:'string', mapping:'Containertype'}, 
     {name:'Harbor', type:'string', mapping:'Harbor'}, 
     {name:'Loadingpoint', type:'string', mapping:'Loadingpoint'}, 
     {name:'Misc', type:'string', mapping:'Misc'}, 
     {name:'Postalcode', type:'string', mapping:'Postalcode'}, 
     {name:'Price', type:'decimal', mapping:'Price'}, 
     {name:'Transportmodel', type:'string', mapping:'Transportmodel'}, 
     {name:'Year', type:'year', mapping:'Year'}, 
     {name:'RouteID', type:'int', mapping:'RouteID'} 
    ] 
}); 

非常感谢您的帮助!

回答

0

您需要拥有将存储来自JSON响应的已解析数据的存储和将显示此存储中的数据的网格。像:


//call this function in ajax success 
function loadJsonData() { 
    var myStore = Ext.create('Ext.data.JSONStore', { 
       fields: [ 
         {name1: 'field_name1'}, 
         {name2: 'field_name2'}, 
         {name3: 'field_name3'} 
       ], 
       data: jsonData 
    }); 
    // create the Grid 
    var grid = Ext.create('Ext.grid.Panel', { 
       store: myStore, 
       stateful: true, 
       stateId: 'stateGrid', 
       columns: [ { 
         text : 'field_name1', 
         sortable : false, 
         dataIndex: 'field_name1' // add fields you want to display 
       }, ... ]    
       renderTo: 'table' // add other params as you want 
    }); 
}; 

希望它可以帮助

+0

您好,感谢您的帮助,它并不能帮助..我有一个店,但JSON必须首先loadet进店,因为没有组合框的ID,在结果是空= :(我必须按下按钮,然后json传入商店,如何? – 2012-04-27 09:01:41