【发布时间】:2012-11-06 20:38:30
【问题描述】:
你好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。在我看来,我的问题与 datatype 相关,但尽管搜索了这样的示例,但我无法下定决心如何解决这个问题。 同样值得注意的是,我希望数据类型为 local ,因为在 jqGrid 中搜索和过滤数据而没有任何 SQL where 语句。 有任何建议我都会很高兴,谢谢:)
【问题讨论】:
-
如果您想使用您当前的代码,您可能应该添加
jQuery.ajax的附加参数,例如dataType: "json"或contentType: "application/json"。如果您将使用错误的参数,success回调中的r参数类型可能是string,而不是对象数组。因此可能需要通过调用$.parseJSON(r)手动将r转换为对象。 -
@Oleg 感谢您的建议。因此,在第二个示例中,我尝试从服务器检索信息并作为本地添加到 jqGrid 中,如果我将其转换为 yes 是可能的:)?
标签: php javascript jquery ajax jqgrid