JqG​​rid没有从PHP加载JSON格式的数据

时间:2012-11-17 02:09:57

标签: json jqgrid

有人可以帮助我并指出我哪里出错了。感谢您的帮助。网格显示空白,没有任何内容被加载。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js"></script>
    <script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.1.1/js/i18n/grid.locale-en.js"></script>

<script type="text/javascript">
        $.jgrid.no_legacy_api = true;
        $.jgrid.useJSON = true;
</script>

<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.1.1/js/jquery.jqGrid.src.js"></script>

<script type="text/javascript">

jQuery(document).ready(function(){ 

jQuery("#list2").jqGrid({
    url:'http://localhost/jqgrid/book.php',
    datatype: "json",
    colNames:['Title', 'Author', 'Publisher'],
    colModel:[
        {name:'title' , width:160},
        {name:'author' ,width:180},
        {name:'publisher' ,width:80}
    ],
    rowNum:10,
    rowList:[10,20,30],
    pager: '#pager2',
    sortname: 'title',
    sortorder: "desc",
    height: 'auto',
    width: 900,
    viewrecords: true,
    gridview: true,
    caption:"JSON Example",
    jsonReader : {
        repeatitems: true,
        cell: "cell",
        id:"id",
        userdata: "userdata",
        root: "rows",
        page: "page",
        total: "total",
        records: "records"
       }  
});

jQuery("#list2").jqGrid('navGrid','#pager2',{edit:false,add:true,del:true});

});

</script>

</head>

<body>

     <table id="list2"><tr><td></td></tr></table>
     <div id="pager2"></div>

</body>
</html>

这是我对PHP的JSON响应:

{“page”:“1”,“total”:1,“records”:“2”,“rows”:[{“id”:“2”,“cell”:[“PHP QUERY”, “JSON”,“VTECH”]},{“id”:“1”,“cell”:[“JQUERY Cook book”,“MY AUTHOR”,“GRID”]}}}

1 个答案:

答案 0 :(得分:0)

您发布的代码一般都是正确的。您可以在the demo上看到。

问题的原因可能是使用绝对网址路径 url:'http://localhost/jqgrid/book.php'而非相对,例如url:'book.php'或{{1 }}。另一个可能的原因可能是JSON响应的HTTP标头中的url:'/jqgrid/book.php'值错误。我建议您永远不要在Ajax请求中使用绝对URL,因为由于same origin policy,您只能使用来自相同Web服务器的URL。因此,最好始终使用 relative URL。