2013-07-19 3 views
0

Я пытаюсь использовать jqgrid в проекте zendframework, im пытается оценить значения из таблицы, называемой utilizadores. в поджигатель я получаю ки сообщения, но aswer это:проблемы в zend framework с помощью jqgrid

<br /> 
<b>Warning</b>: Creating default object from empty value in <b>C:\xampp\htdocs\Eulen2\application\controllers\UtilizadoresController.php</b> on line <b>51</b><br /> 
{"page":"1","total":1,"records":1,"rows":[{"id":"1","cell":["hugo silva","admin","Admin"]}]} 

линия 51 это:

$responce->page = $page > $total_pages ? $total_pages : $page; 

вот мой код:

списка действий

utilizadores контроллера

public function listAction() 
    { 
     // action body 
     if($this->_request->isXmlHttpRequest()) 
     { 
      $this->_helper->layout()->disableLayout(); 
      $this->_helper->viewRenderer->setNoRender(true); 
      Zend_Paginator::setDefaultScrollingStyle('Sliding'); 
      $page = $this->_getParam('page', 1); 
      $limit = $this->_getParam('rows', 0); 
      $sidx = $this->_getParam('sidx', 1); 
      $sord = $this->_getParam('sord', 0); 
      $totalrows = $this->_getParam('totalrows', false); 
      if($totalrows) 
       $limit = $totalrows; 
      $employeesModel = new Application_Model_Account(); 
      $filters = !empty($_REQUEST['filters']) ? (array) json_decode($_REQUEST['filters']) : array(); 
      //$jqGridModel = new Application_Model_JqGrid(); 
      $employeesModelSelect = ($_GET['_search'] == 'true') ? $jqGridModel->where($employeesModel, $filters['rules']) : $employeesModel->select(); 
      $employeesModelSelect->order("$sidx $sord"); 
      $adapter = new Zend_Paginator_Adapter_DbTableSelect($employeesModelSelect); 
      $paginator = new Zend_Paginator($adapter); 
      $paginator->setCurrentPageNumber($page)->setItemCountPerPage($limit); 
      $count = count($employeesModel->fetchAll()); 
      $total_pages = $count > 0 ? ceil($count/$limit) : 1; 
      $responce->page = $page > $total_pages ? $total_pages : $page; 
      $responce->total = $total_pages; 
      $responce->records = $count; 
      $i = 0; 
      foreach($paginator as $item) 
      { 
       $responce->rows[$i]['id'] = $item['id_utilizador']; 
       $responce->rows[$i]['cell'] = array($item['nome'], $item['username'],$item['tipo_utilizador']); 
       $i++; 
      } 
      echo json_encode($responce); 
     } else 
     { 
      $this->_helper->layout()->pageTitle = 'Listagem de utilizadores'; 
      $this->_helper->layout()->pageDescription = 'Neste seção podes listar todos os utilizadores'; 
     } 
    } 

в моем списке.phtml У меня есть это:

<script> 
     $(function() { 
      $("#toolbar").jqGrid({ 
       caption:"Utilizadores", 
       colNames:['Nome', 'Apelido','Cargo'], 
       colModel:[ 
        {name:'nome',index:'nome'}, 
        {name:'username',index:'username'}, 
        {name:'tipo_utilizador',index:'tipo_utilizaodr'} 
       ], 
       datatype:"json", 
       height:421, 
       rownumWidth:40, 
       pager:'#ptoolbar', 
       rowList:[10,20,30], 
       rowNum:10, 
       sortname:'id_utilizador', 
       sortorder:'desc', 
       url:'/utilizadores/list/', 
       viewrecords:true, 
       width:740 
      }); 
      $("#toolbar").jqGrid('navGrid','#ptoolbar',{del:false,add:false,edit:false,search:false}); 
      $("#toolbar").jqGrid('filterToolbar',{stringResult:true,searchOnEnter:false}); 
     }); 
    </script> 

и моя модель счета

class Application_Model_Account extends Zend_Db_Table 
{ 
protected $_name = 'utilizadores'; 
} 

соединение с БД работает нормально, потому что ив получил форму входа, и я могу Асесс по полю существующего на столе «utilizadores».

я пытался заменить код, чтобы вернуть XML вместо JSON, но samething бывает ...

ответ

0

$ Быстродействие не была определена, прежде чем вы использовали его, поэтому вы получите предупреждение.

Попробуйте добавить

$responce = new stdClass(); 

незадолго до $ responce-> страница ...

+0

спасибо, предупреждение исчезает, но сетка еще не показывает на data..this результат. { "Страница ":" 1 "," total ": 1," records ": 1," rows ": [{" id ":" 1 "," cell ": [" hugo silva "," admin "," Admin "] }]} –

+0

это была ошибка у меня .. тип данных был xml вместо json ... спасибо за помощь ... –

Смежные вопросы