0

私は 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

誰も理由を知っていますか?うまくいけば、私はあなたに続けるのに十分なものを与えました.

4

1 に答える 1

1

私はそのために ItemFileWriteStore を使用しません! これらは Dojo 1.6 から大幅に変更されたため、最新ではないものを見たのかもしれません。

このコードを試してください:

// 必要なコンポーネントをロードします (これは AMD の dojo です) !

require(["dojo/aspect",'dojo/_base/lang', 'dojox/grid/DataGrid' ,'dojo/dom' , 'dojo/store/JsonRest','dojo/data/ObjectStore', 'dojo/ domReady!'],

function(aspect,lang, DataGrid, dom,JsonRest,ObjectStore){ // コンポーネントを変数にマップします...

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" :"ピューピュー!"}]';

その後、独自の JSON を使用して...

于 2013-02-11T17:51:18.993 に答える