0

你好stackoverflow国家!我有这样的障碍。试图传入在 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。在我看来,我的问题与数据类型有关,但尽管搜索了这样的示例,但我无法下定决心如何解决这个问题。同样值得注意的是,我希望数据类型为 local ,因为在 jqGrid 中搜索和过滤数据而没有任何 SQL where 语句。有任何建议我都会很高兴,谢谢:)

4

1 回答 1

2

抱歉,您发布的代码确实有效:请参阅演示

在此处输入图像描述

所以你应该在另一个地方搜索问题。

例如,一个可能的问题是您多次执行代码。您应该创建一次网格,然后通过更改data参数和触发器的值来更改数据reloadGrid。顺便可以url: "../info.php"直接在jqGrid中使用。您只需添加相应的jsonReader(请参见此处)。为了能够使用本地过滤,您只需添加loadonce: true到 jqGrid 参数列表中。或者,您可以在重新创建网格之前GridUnload每次调用方法(参见示例的答案)。

于 2012-11-06T21:36:09.260 回答