我编写了在 joomla(2.5.9 版)中使用 jqgrid(4.4.4 版)的代码。这是我的代码,我发现 jqgrid 无法显示来自 joomla json_encode 的数据。但是在 joomla 中没有是可以的。如果 jqgrid url:testjson.php 没问题。
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header("Content-Type: application/json;charset=utf-8");
header('Content-Disposition,attachment;filename=”json.json”');
$response=new stdClass();
$response->page = 1;
$response->total = 1;
$response->records = 1;
$response->rows[0]['id']='1';
$response->rows[0]['cell']=array("1","vlan");
echo json_encode($response);
?
我得到 json:{"page":1,"total":1,"records":1,"rows":[{"id":"1","cell":["1","vlan"] }]},并且 jqgrid 工作正常。
当jqgrid url:index.php?option=com_sysconfig&view=vlan&task=ajaxvlane.getvlanlist&format=raw
在子控制器中,在函数 getvlanlist 中,这段代码很糟糕:
<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header("Content-Type: application/json;charset=utf-8");
header('Content-Disposition,attachment;filename=”json.json”');
$response=new stdClass();
$response->page = 1;
$response->total = 1;
$response->records = 1;
$response->rows[0]['id']='1';
$response->rows[0]['cell']=array("1","vlan");
echo json_encode($response);
JFactory::getApplication()->close();
?>
通过萤火虫我可以看到 json:{"page":1,"total":1,"records":1,"rows":[{"id":"1","cell":["1", "vlan"]}]} 与 testjson.php 结果相同。
但 jqgrid 不能显示任何数据。
什么错误导致问题?谢谢。
顺便说一句,如果我使用 joomla 创建 xml 数据,jqgrid 工作正常。