0

こんにちはスタックオーバーフロー国家!私はそのような問題を抱えています。ajax内で取得したjqGrid配列データを渡そうとしていますが、うまくいきません。スクリプトを見てみましょう =>

$(function(){ // this script works just fine (of course this array and jqGrid initialization script is in the same file)
var arr = [
    {a:"a",b:"b"},
    {a:"c",b:"d"}
];
$("#_tb").jqGrid({
    datatype: "local",
    data: arr,
    colNames: ["ONE","Two"],
    colModel: [
        {name:"a",index:"a",align:"center"},
    {name:"b",index:"b",align:"center"}
    ],
    pager: $("#_pager"),
    height: "auto"
});
});

ここに私の問題があります=>

$.ajax({
    url: "../info.php",
    type: "get",
    data: {},
    success: function(r){
        $("#_tb").jqGrid({
        datatype: "local",
        data: r,
        colNames: ["ONE","Two"],
        colModel: [
            {name:"a",index:"a",align:"center"},
            {name:"b",index:"b",align:"center"}
        ],
        pager: $("#_pager"),
        height: "auto"
        });
    }
    });

このスクリプトは機能しませんが、データは ajax 内で json 形式に正常に取得されます。ここにもinfo.phpスクリプトがあります

// using PDO for connection
foreach($con->query("SELECT * FROM tb") as $row){
    $info[] = array(
        "a" => $row["a"],
        "b" => $row["b"]
    );
}
echo json_encode($info);

PS。私の意見では、私の問題はdatatypeに関連していますが、そのような例を検索しても、それを解決する方法がわかりません。また、SQL where ステートメントを使用せずに jqGrid でデータを検索およびフィルタリングするため、 datatype を local にしたいことも注目に値します。どんなアドバイスでも、私は喜んでいます、ありがとう:)

4

1 に答える 1

2

申し訳ありませんが、投稿したコードは動作します:デモを参照してください:

ここに画像の説明を入力

したがって、別の場所で問題を検索する必要があります。

たとえば、考えられる問題の 1 つは、コードを複数回実行することです。一度グリッドを作成してから、dataパラメーターとトリガーの値を変更してデータを変更する必要がありますreloadGrid。ちなみに、url: "../info.php"jqGridで直接使用できます。対応するものを追加するだけですjsonReader(こちらを参照)。ローカル フィルタリングを使用できるようにするloadonce: trueには、jqGrid パラメータのリストに追加するだけです。または、グリッドを再作成する前にGridUnload毎回メソッドを呼び出すこともできます(例については回答を参照してください)。

于 2012-11-06T21:36:09.260 に答える