jqGrid没有加载json数据

时间:2016-12-21 09:40:02

标签: php jqgrid

我不确定我的代码中缺少什么。我有一个jqGrid加载json数据。我使用的是jqGrid版本5.2.0。

下面是我的HTML和脚本。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>Data Grids</title>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">

<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">

<!-- jqGrid jQuery css -->  
<!-- A link to a jQuery UI ThemeRoller theme, more than 22 built-in and many more custom -->
<link rel="stylesheet" href="../static/plugins/jqGrid/css/jquery-ui.css" />
<!-- The link to the CSS that the grid needs -->
<link rel="stylesheet" href="../static/plugins/jqGrid/css/ui.jqgrid.css" />

<!-- jqGrid jQuery js -->
<script type="text/javascript" src="../static/plugins/jqGrid/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="../static/plugins/jqGrid/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="../static/plugins/jqGrid/js/i18n/grid.locale-en.js"></script>

</head>
<body>
  <table id="myGrid"></table>
  <div id="myGridPager"></div>

  <script type="text/javascript">
$(document).ready(function () {
    $("#myGrid").jqGrid({
        url: "/pages/php/getGridData.php",
        datatype: "json",
        mtype: "GET",
        colNames: ["Asset Number", "Cost", "Source", "Project ID", "Task ID", "PO Number"],
        colModel: [
            { name: "ASSET_ID", width: 80 },
            { name: "FIXED_ASSETS_COST", width: 90, align: "right" },
            { name: "FEEDER_SYSTEM_NAME", width: 80 },
            { name: "PROJECT_ID", width: 80 },
            { name: "TASK_ID", width: 80 },
            { name: "PO", width: 80, sortable: false }
        ],
        jsonReader : { 
            root: "rows", 
            page: "page", 
            total: "total", 
            records: "records", 
            repeatitems: true, 
            id: "id", 
            cell: "cell"
            },
        width: 700,
        height: 'auto',
        pager: "#myGridPager",
        rowNum: 10,
        rowList: [10, 20, 30],
        sortname: "ASSET_ID",
        sortorder: "desc",
        viewrecords: true,
        gridview: true,
        autoencode: true,
        caption: "Source Lines (FAR)"
    }); 
    $("#myGrid").jqGrid('navGrid','#myGridPager',{edit:false,add:false,del:false});    
}); 
</script>

</body>
</html>

json数据如下:

{"page":1,"total":1,"records":10,"rows":[{"id":2432447,"cell":[2432447,1450410,57.23,"ORACLE PROJECTS",835711,3219040,"86652"]},{"id":2432451,"cell":[2432451,868512,0,"ORACLE PROJECTS",741610,3126807,"84605"]},{"id":2432453,"cell":[2432453,868512,5403.6,"ORACLE PROJECTS",741610,3126807,"84605"]},{"id":2432455,"cell":[2432455,1814091,0,"ORACLE PROJECTS",840842,3210792,"87986"]},{"id":2432456,"cell":[2432456,1814091,600,"ORACLE PROJECTS",840842,3210792,"87986"]},{"id":2432460,"cell":[2432460,841706,0,"ORACLE PROJECTS",767616,3226001,"85666"]},{"id":2432465,"cell":[2432465,1814095,0,"ORACLE PROJECTS",840842,3210293,"87986"]},{"id":2432466,"cell":[2432466,1814095,600,"ORACLE PROJECTS",840842,3210293,"87986"]},{"id":2432901,"cell":[2432901,1231634,0,"ORACLE PROJECTS",741610,3190901,"84605"]},{"id":2432915,"cell":[2432915,1231634,4651.72,"ORACLE PROJECTS",741610,3190901,"84605"]}]}

页面加载但没有数据。我有什么问题吗?

2 个答案:

答案 0 :(得分:0)

根据您发布的代码,似乎href属性未设置为有效的URL。 例如 : <link rel="stylesheet" href="../static/plugins/jqGrid/css/jquery-ui.css" /> (类似于链接和脚本标签中添加的其他JS和CSS链接)

更改指向有效网址的链接很可能会解决您的问题。

答案 1 :(得分:0)

问题是我的PHP代码(getGridData.php)虽然提供了正确的json输出,但也输出了一些警告和通知。

我必须在我的php中禁用E_WARNING和E_NOTICE错误。

error_reporting(E_ERROR | E_PARSE);

我仍然需要处理我的PHP代码,而不仅仅是忽略错误。但与此同时,这也奏效了。

感谢Pratyay的回复。