0

我编写了在 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 工作正常。

4

1 回答 1

0

我得到了答案:因为代码编辑器是 UTF8 BOM 字符集。如果不使用 BOM uft-8,那么它工作正常。

于 2013-03-04T14:33:31.947 回答