/** * Back end data provider to datagrid. * @return json */ public function fillgridAction() { $request = $this->getRequest(); $valid = $request->getParam('nd'); $department_id = $request->getParam('department_id'); $degree_id = $request->getParam('degree_id'); $semester_id = $request->getParam('semester_id'); $test_id = $request->getParam('test_id'); if ($request->isXmlHttpRequest() and $valid) { $this->gridparam['page'] = $request->getParam('page', 1); // get the requested page $this->gridparam['limit'] = $request->getParam('rows', 20); // rows limit in Grid $this->gridparam['sidx'] = $request->getParam('sidx', 1); // get index column - i.e. user click to sort $this->gridparam['sord'] = $request->getParam('sord', 'asc'); // sort direction $params = array('department_id' => $department_id, 'degree_id' => $degree_id, 'semester_id' => $semester_id, 'test_id' => $test_id, 'test_type_id' => 'SESS'); $model = new Acad_Model_Test_Sessional($params); $result = $model->fetchSchedule(); $response = new stdClass(); $response->page = $this->gridparam['page']; $response->total = 1; if ($result instanceof Zend_Exception) { $this->getResponse()->setException(new Exception('Invalid sessional parameter OR No entry exists', Zend_Log::ERR))->setHttpResponseCode(400); } elseif (true == $result['exists']) { $response->records = count($result['data']); foreach ($result['data'] as $key => $row) { $response->rows[$key]['id'] = $row->getTest_info_id(); $response->rows[$key]['cell'] = array($row->getSubject_code(), $row->getSubject_name(), $row->getDate_of_conduct(), $row->getTime(), $row->getMax_marks(), $row->getPass_Marks()); } $this->_helper->json($response); } else { foreach ($result['data'] as $key => $row) { $response->rows[$key]['id'] = 'new_' . $key; $response->rows[$key]['cell'] = array($row->getSubject_code(), $row->getSubject_name(), $row->getDate_of_conduct(), $row->getTime(), $row->getDefault_max_marks(), $row->getDefault_pass_Marks()); } $this->_helper->json($response); } } }