2011-09-02 49 views
0

當我在數據存儲區內有'data:... raw json'配置成員時,我的數據存儲區工作正常,但是當我嘗試通過ajax加載時,它不工作。Ajax json數據未被加載到數據存儲區

new Ext.data.Store({ 
     model: "SearchResult", 
     proxy: { 
      type: "ajax", 
      url : "test.php", 
      extraParams : 'test', 
      reader: { 
       type: "json", 

      } 
     }, 

    }); 

注:test.php的根據鉻被調用,又呼應了:

{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' } 

任何想法我做錯了嗎?

+0

你能提供你的模型的代碼?你怎麼確定它不起作用 - 拋出異常?嘗試爲您的商店註冊一些異常處理程序。嘗試在調試器中逐個瀏覽商店加載代碼。 –

+0

我知道模型是正確的,因爲當我使用'data:'配置參數手動將json數據手動放入數據存儲區時,一切正常。我確定代碼不工作,因爲數據應該加載到列表中並且不會顯示。我對異常處理程序不熟悉,在調試控制檯中沒有出現任何錯誤。謝謝。 – David

回答

1

你把你的數據編碼爲json在php中嗎? 像這樣echo json_encode($ data); 這或者是或者模型與迴應完全不同。

一個JSON格式看起來像這樣

{'success':true,'values':[{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }]} 


reader:{ 
        type: 'json', 
        root: 'values', 
       } 
+0

被迴應的數據是json格式。我知道模型是正確的,因爲當我使用'data:'配置參數手動將json數據手動放入數據存儲區時,一切正常。 – David

+0

我不認爲json是正確的 – nscrob

1

您需要爲您的JSON 「數據」 包裝:按照鉻和回聲test.php的被調用:

{"data":[... your JSON ...],"total":9999999,"success":true} 
+0

不,他沒有。他沒有指定記錄的「root」配置。文檔說'默認情況下會使用數據的自然根。根Json陣列' –

+0

是的,但他仍然需要[]括號......否則它不會是json陣列 – nscrob

+0

@nscrob,當然。我的意思只是'你需要一個「數據」包裝器部分。 –

2

注出售:
'庫存: '湯米',店電話:'353535',年:'1984',使:'法拉利',修剪: '修剪',英里:'12345',店名:'分行名稱}} ,
{stock:'Tommy', storePhone:'353535',year:'1984',make:'Ferrari',trim:'trim', miles:'12345',storename:'branch name'},
{股票: '湯米', storePhone: '353535',年: '1984年',使: '法拉利',修剪: '微調', 英里: '12345',STORENAME: '分支名稱'}

方括號在哪裏?對於你的商店配置,響應應該看起來像

// Notice the square brackets 
[ 
    {stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }, 
    {stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }, 
    {stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' } 
]