0

3つのコンボボックスが選択されている場合、選択された値IDが$ POSTで送信され、次にAJAXからPHPに送信されます。

PHP は、コンボボックス 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'}

               )

私の検証済み 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'}
    ]
});

助けてくれてありがとう!

4

1 に答える 1

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
    });
};

それが役に立てば幸い

于 2012-04-27T07:24:56.457 に答える