jqgrid不会使用json数据填充表

时间:2013-06-14 13:42:43

标签: php json jqgrid populate

我一直在四处寻找答案,但一直找不到答案。我目前正在从mssql数据库中获取数据,并且所有内容似乎都在php端正常填充,但无论如何这里是代码

$responce->total = $total_pages;
$responce->page = $page;
$responce->records = $count;
$i=0;

while($row = sqlsrv_fetch_array($result,SQLSRV_FETCH_ASSOC)) {
    $responce->rows[$i]['id']=$row[Cell1];            
    $responce->rows[$i]['cell']=array($row[Cell1],$row[Cell2],$row[Cell3]);
    $i++;
}
echo $json_encode($responce);

我的json文件就像这样:

{"total":"1","page":"1","records":"1","rows":[{"id":"1","cell":["1","2","3"]}]}

最后我的HTML看起来像这样:

<link rel="stylesheet" type="text/css" media="screen" href="css/south-street/jquery-ui-1.10.3.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<link href="css/ui.multiselect.css" />

<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="js/jquery.layout.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/ui.multiselect.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function () {
    $("#list").jqGrid({
        url: "retrieve.php",
        datatype: "json",
        mtype: "POST",
        colNames: ["Cell1", "Cell2", "Cell3"],
        colModel: [
            { name: "Cell1", width:55 , index:'Cell1' },
            { name: "Cell2", width: 90, index:'Cell2' },
            { name: "Cell3", width: 80, index:'Cell3' },
        ],
        jsonReader: { repeatitems: false },
        pager: "#pager",
        rowNum: 10,
        rowList: [10, 20, 30],
        scroll:1,
        sortname: Cell1",
        sortorder: "asc",
        sortable:true,
        viewrecords: true,
        gridview: true,
        ignoreCase:true,
        autowidth:true,
        ondblClickRow: function (id) {
            $(this).jqGrid('viewGridRow', id, { caption: "Server Information" });
        }
    });
});
</script>

如果有人可以帮我弄清楚为什么我的网格不能正常填充我会非常感激!

2 个答案:

答案 0 :(得分:0)

代码中的主要错误如下:

  • 您应该将语法错误sortname: Cell1"修复为sortname: "Cell1"
  • 删除您使用的thze格式错误的jsonReader: { repeatitems: false }
  • 删除jQuery的第二个版本。应使用jquery.jsjquery-1.9.0.min.js

答案 1 :(得分:0)

可能是你的JS文件存在冲突。

<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script> 

您应该只使用一个JS而不是使用两个jquery文件。

并以这种方式更改js文件的顺序..

<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery.layout.js" type="text/javascript"></script>
<script src="js/ui.multiselect.js" type="text/javascript"></script>

请从colModel

中删除“,”
colModel: [
            { name: "Cell1", width:55 , index:'Cell1' },
            { name: "Cell2", width: 90, index:'Cell2' },
            { name: "Cell3", width: 80, index:'Cell3' },
        ],

colModel: [
            { name: "Cell1", width:55 , index:'Cell1' },
            { name: "Cell2", width: 90, index:'Cell2' },
            { name: "Cell3", width: 80, index:'Cell3' }
        ],

我认为它解决了你的所有问题。