0

jqgridはsetjsonReader、repeatitems:falseでは機能しません

まず、私のjqgridは配列によるgetDataです

$(listvar).jqGrid({

}
$responce = new stdClass();

    $responce -> page = $page;

    $responce -> total = $total_pages;

    $responce -> records = $count;

    $responce -> rows[$num]['id'] = $row["id"];

$responce -> rows[$num]['cell']= array("fid" => $row['fid'], "fname" => $row['fname']);

echo json_encode($responce);

正常に動作します。;しかし、私はキー値でやりたいです; 次に、コードを変更して、jqgridがキー値の方法でデータを取得できるようにします。参照します

jqGridセルデータにキーと値のペアを使用する

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieveing_data#json_data


$(listvar).jqGrid({

enter code here`jsonReader : {

repeatitems : false,
   //others default value;

  },

}

mycode:

$responce = new stdClass();

    $responce -> page = $page;

    $responce -> total = $total_pages;

    $responce -> records = $count;

 $responce -> rows[$num]['id'] = $row["id"];

$responce -> rows[$num]['cell']= array("fid" => $row['fid'], "fname" => $row['fname']);

 echo json_encode($responce);

:web reponse;

{"page":"1","total":1,"records":"1","rows":{"id":1,"cell":   [{"fid":"153","fname":"\u624b\u673a"}]}}

ただし、jqgridはデータを表示できません。何が問題ですか ?

4

2 に答える 2

1

投稿したJSONデータには、配列ではなくオブジェクトrowsとして含まれています。それはあなたの問題です。サーバーコードを変更して、生成されるようにする必要があります

{
    "page": "1",
    "total": 1,
    "records": "1",
    "rows": [
        {
            "id": 1,
            "cell": [
                {
                    "fid": "153",
                    "fname": "手机"
                }
            ]
        }
    ]
}

それ以外の

{
    "page": "1",
    "total": 1,
    "records": "1",
    "rows": {
        "id": 1,
        "cell": [
            {
                "fid": "153",
                "fname": "手机"
            }
        ]
    }
}

(の値については、 {}toの置換を参照してください)[{}, ...,{}]rows

于 2013-03-22T12:18:18.660 に答える
0
rows    an array that contains the actual data
  id    the unique id of the row
cell    an array that contains the data for a row

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieveing_data#json_data _

したがって、uがキー値の方法を選択した場合; セルはコンテンツのjson文字列に含めるべきではありません。

$responce -> rows[$num]['id'] = $row["id"];

$responce -> rows[$num]['cell']= array("fid" => $row['fid'], "fname" => $row['fname']);
**result:** "rows":{"id":1,"cell":   [{"fid":"153","fname":"\u624b\u673a"}]}}

に変更されました

$responce -> rows[$num]= array("id"=>"id","fid" => $row['fid'], "fname" => $row['fname']);

reponse json:** "rows":[{"id":null,"fid":"153","fname":"\u624b\u673a"

phpの配列は0から開始する必要があるため、numは0からでなければなりません。そうでない場合、結果のjsonStringは次のようになります。

-

  result:"rows":{"1":{"id":null,"fid":"153","fname":"\u624b\u673a"
于 2013-03-22T12:18:26.263 に答える