我在php中编程,
我想取一个array
我(从mysql结果集中提取),将其转换为JSON
,然后在dojox.grid.DataGrid
中使用它。
我在array
上使用了以下内容(在名为getJSON.php
的文件中)
echo $ajax = "{identifier: 'db_id', 'items':".json_encode($array)."}";
然后我尝试这样做(在我的主页中):
var store = new dojo.data.ItemFileWriteStore({ url: 'getJSON.php' });
其他所有内容与Dojo文档指定的完全相同。
网格显示,但不加载数据,而是写入Sorry, an error occurred
有谁知道原因?希望我能给你足够的信息。
答案 0 :(得分:1)
我没有使用ItemFileWriteStore!自Dojo 1.6以来,它们发生了很大的变化,所以也许你看了一些不是最新的东西。
试试这段代码:
//加载必要的组件(这是与AMD的dojo)!
require([“dojo / aspect”,'dojo / _base / lang','dojox / grid / DataGrid' ,'dojo / dom','dojo / store / JsonRest','dojo / data / ObjectStore', '道场/ domready中!'],
function(aspect,lang,DataGrid,dom,JsonRest,ObjectStore){//将组件映射到vars ...
var store = new JsonRest({ target: "getJSON.php" // Use a URL that you can open up in a browser. }); /*layout for the grid, you will have to adapt this to your columns !!!*/ var layout = [[ {'name': 'Filename', 'field': 'documentName', 'width': '300px'}, {'name': 'Size', 'field': 'fileSize', 'width': '100px'}, {'name': 'Id', 'field': 'id', 'width': '200px'} ]]; dataStore=ObjectStore({objectStore: store}); // Transform to Objectstore ! /*Now we create a new grid*/ var grid = new DataGrid({ id: 'grid', store:dataStore, // Connect the store autoWidth:false, structure: layout, // Connect the layout rowSelector: '0px'}); grid.placeAt("yourTargetDivId"); // Has to be an existing DOM Element with id ! grid.startup(); // START IT !
});
请首先回复一下这样简单的事情来试试这段代码:
echo'[{“id”:“1”,“fileSize”:“100kb”,“documentName”:“Lucian!”}, {“id”:“2”,“fileSize”:“900kb”,“documentName”:“Pew Pew!”}]';
然后用你自己的JSON ......