2012-04-13 3 views
1

私はjQgridを使用してトラブルを抱えている中[objが定義されていません]:取得私はJSONデータ型とjqgridを初期化するときには、エラーになり、jqgrid

obj is undefined

ret = obj[expr];

私はローカルデータ型とjqgridを初期化し、

(これは偽のデータのみである)エラーが発生しませんが、JSONデータは

index.htmlを

<table id="products"></table> 
<div id="pager"></div> 

<script type="text/javascript"> 
$('document').ready(function(){ 
    jQuery("#products").jqGrid({ 
     url: 'product.php', 
     editurl: 'product_update.php', 
     datatype: "json", 
     mtype: 'POST', 
     colNames:['Product Name'], 
     colModel:[ 
      {name:'product_name',index:'product_name', width:90} 
     ], 
     rowNum:-1, 
     viewrecords: true, 
     rowList:[10,20,30], 
     pager: '#pager', 
     toolbar : [true,"top"], 
     sortorder: "DESC", 
     caption:"Products", 
     width: 940, 
     height: "100%" 
    }); 
}); 
</script> 

product.phpをロードされません

$arrayName = array(); 
    $arrayName['page'] = 1; 
    $arrayName['total'] = 1; 
    $arrayName['records'] = 3; 
    $arrayName['rows'][0] = array(
     'product_name' => 'Product X' 
     ); 
    $arrayName['rows'][1] = array(
     'product_name' => 'Product Y' 
     ); 
    $arrayName['rows'][2] = array(
     'product_name' => 'Product Z' 
     ); 

    echo json_encode($arrayName); 

JSON出力:

{"page":1,"total":1,"records":3,"rows":[{"product_name":"Product X"},{"product_name":"Product Y"},{"product_name":"Product Z"}]}

私は誰かがここで私を助けることができる願っています。

は、事前にありがとう:JSONデータのD

答えて

2

デフォルトの入力形式 -

{"page":1,"total":1,"records":3,"rows":[ 
    {"id":"Product X", "cell":["Product X"]}, 
    {"id":"Product Y", "cell":["Product Y"]}, 
    {"id":"Product Z", "cell":["Product Z"]} 
]} 

などのIDを持つ項目の配列を(hereを参照してください)。現在投稿しているデータを読むには、jsonReader: {repeatitems: false, id: "product_name"}オプションをjqGrid定義に追加する必要があります。

jsonReader: {cell: "", id: "0"}を使用する場合、最もコンパクトな入力です。場合は、あなたはまた、私がrowNum:-1を使用するためにあなたをお勧めしません

{"page":1,"total":1,"records":3,"rows":[ 
    ["Product X","Product Y","Product Z"]} 
]} 

にJSONデータのフォーマットを変更する必要があります。十分に大きい正の値を使用する方が良いです。例えば、rowNum: 10000rowNum:-1を持つグリッドにloadonce: trueを追加すると、jqGridはグリッドを間違った方法で描画します。

パフォーマンスを向上させるには、gridview: trueを追加する必要があります。最後の発言:index:'invdate'の使用は誤りですか?

+0

ありがとう、私はjsonReaderを使用する必要があることを認識していません。私はすでに以前はjqgridを使っていましたが、この問題に遭遇しなかったので、古いプロジェクトのコードに基づいていました。 私が行ったことは、上記のように 'jsonReader:{repeatitems:false、id:" product_name "}'を追加することです。 ありがとうございました:D – jzarsuelo

+0

@ user239431:ようこそ! – Oleg

関連する問題