2016-12-21 5 views
0

Я не уверен, чего не хватает в моем коде. У меня есть jqGrid загрузки json данных. Я использую jqGrid версии 5.2.0.jqGrid не загружает данные json

Ниже представлен мой 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"]}]} 

загрузки страницы, но без каких-либо данных. Я что-то делаю неправильно?

ответ

0

Из кода, который вы опубликовали, похоже, что атрибут href не установлен в действительный URL. Например: <link rel="stylesheet" href="../static/plugins/jqGrid/css/jquery-ui.css" /> (Аналогично для других JS и CSS ссылки, добавленные в теги ссылок и скрипт)

Изменение ссылки на действительный URL, скорее всего, решить проблему.

0

Проблема заключалась в моем php-коде (getGridData.php), который хотя и дал правильный выход json, но также выводил некоторые предупреждения и уведомления.

Мне пришлось отключить ошибки E_WARNING и E_NOTICE в моем php.

error_reporting(E_ERROR | E_PARSE); 

Мне по-прежнему необходимо позаботиться о моем PHP-коде не только для игнорирования ошибок. Но тем временем это сработало.

Спасибо, Pratyay за ваш ответ.