Ajax数据仍未加载到数据存储中

Ajax数据仍未加载到数据存储中

问题描述:

我在周末之前问过这个问题,尽管遵循了这个建议,但仍然陷入了僵局。这次我会发布所有相关的代码,希望有人能帮助我了解这一点。Ajax数据仍未加载到数据存储中

重要注意事项:当我使用商店的数据[{json data}]参数静态地将数据输入到数据存储区时,数据存储和模型完美地工作。但使用Ajax代理做失败(即使我可以在Chrome中看到的test.php被调用,又呼应了JSON数据(见下面的test.php)

这是我的店:

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

    }); 

我加载它通过处理点击按钮时

这里是在test.php的呼应了:!

<?php 
echo "[{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }]"; 
?> 

一直停留在这个这么任何帮助非常感谢一会儿

它; S不够呼应一个字符串,它看起来像你的JSON ......你应该使用PHP的方法来编码它...你比如这将是

<?php 
    $data = array(array('stock'=> 'Tommy', 'storePhone'=> 353535, 'year'=> '1984', 'make'=> 'Ferrari', 'trim'=> 'trim', 'miles'=> '12345', 'storename'=> 'branch name')); 
    echo json_encode($data); 
?> 
+0

感谢,你解决了我的问题:) –

您需要提供“success:true”属性,并将数据放入JSON响应的根属性中。

然后,您应该将root属性添加到您的读者配置。

{ 
    "success": true, 
    "rows": [ 
     { 
      "stock": "Tommy", 
      "storePhone": "353535", 
      "year": "1984", 
      "make": "Ferrari", 
      "trim": "trim", 
      "miles": "12345", 
      "storename": "branchname" 
     } 
    ] 
} 

您的商店:

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

    }); 
+0

不是真的,......你并不需要提供一个成功:是的,但这是一个很好的设计,要知道什么时候行动成功了...... – nscrob

这解决了问题 store.proxy.url = 'loader.php?user=' + var_here; store.load();