Я пытаюсь использовать 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 бывает ...
спасибо, предупреждение исчезает, но сетка еще не показывает на data..this результат. { "Страница ":" 1 "," total ": 1," records ": 1," rows ": [{" id ":" 1 "," cell ": [" hugo silva "," admin "," Admin "] }]} –
это была ошибка у меня .. тип данных был xml вместо json ... спасибо за помощь ... –