我试图让jqgrid与codeigniter一起工作,但我做不到,我只想用json格式显示表中的数据……但什么也没发生。但我不知道我做错了什么,我看不到桌子上的内容,我打电话。
我的控制器

class Grid extends Controller
{

  public function f()
  {

       $this->load->model('dbgrid');
       $var['grid'] =  $this->dbgrid->getcontentfromtable();

       foreach($var['grid'] as $row) {
        $responce->rows[$i]['id']=$row->id;
        $responce->rows[$i]['cell']=array($row->id,$row->id_catalogo);

       }
     $json = json_encode($responce);
       $this->load->view('vgrid',$json);



  }


  function load_view_grid()
  {

    $this->load->view('vgrid');


  }


}

我的模型
class Dbgrid extends Model{

function getcontentfromtable()
{


  $sql = 'SELECT * FROM anuncios';
  $query = $this->db->query($sql);
  $result = $query->result();


  return $result;
}

我的视图(脚本)
$(document).ready(function() {
 jQuery("#list27").jqGrid({
        url:'http://localhost/sitio/index.php/grid/f',
        datatype: "json",
        mtype: "post",
        height: 255,
        width: 600,
        colNames:['ID','ID_CATALOGO'],
        colModel:[
            {name:'id',index:'id', width:65, sorttype:'int'},
            {name:'id_catalogo',index:'id_catalogo', sorttype:'int'}


        ],
        rowNum:50,
        rowTotal: 2000,
        rowList : [20,30,50],
        loadonce:true,
        rownumbers: true,
        rownumWidth: 40,
        gridview: true,
        pager: '#pager27',
        sortname: 'item_id',
        viewrecords: true,
        sortorder: "asc",
        caption: "Loading data from server at once"
    });

});

希望有人帮我

最佳答案

您在评论中发布的服务器生成的数据

{"rows":{"":{"id":"11","cell":["11","225101503"]}}}

格式错误。输出应该是
{
  "total": "xxx",
  "page": "yyy",
  "records": "zzz",
  "rows" : [
    {"id" :"1", "cell" :["cell11", "cell12", "cell13"]},
    {"id" :"2", "cell":["cell21", "cell22", "cell23"]},
      ...
  ]
}

(见http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data)。所以至少应该是
{"rows":[{"id":"11","cell":["11","225101503"]}]}

通常,如果定义jsonReader,您将能够读取几乎所有数据。只有用函数定义的jsonReader才能读取您生成的数据(请参见http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#jsonreader_as_functionjquery with ASP.NET MVC - calling ajax enabled web service)。对您来说,最简单的方法是更改服务器代码,以生成标准格式集(见上文)中的数据,标准格式集可以读取这些数据。
还有一句话。使用jsonReadersorttype没有影响。参数datatype: "json"仅适用于本地数据的排序。如果sorttype服务器将负责正确的数据排序。jqgrid只向服务器发送列的名称,用户选择哪个列进行数据排序。

10-06 04:41