mstdmstd
Новичок
Всем привет,
А как правильно организовать получение данных через json ?
Проблема в том 1) убрать вывод общего темплейта 2) Правильно вывести данные
Делаю в темплейте:
Наверно можно решить проблему с темплейтом, если сделать один контрол исключительно под ajax, но нехотелось бы этого делать. Мне удобнее распологать методы по логическому разделению.
Как убрать родительский темплейт
если писать
А как правильно?
А как правильно организовать получение данных через json ?
Проблема в том 1) убрать вывод общего темплейта 2) Правильно вывести данные
Делаю в темплейте:
PHP:
var HRef = "{$base_url}main/get_regions_list_by_state_id/" + state_id + "/html/" + current_region_id;
alert(HRef) // Если скопировать этот урл и вставить в брузер то запускается актион ниже
$.getJSON(HRef, function (data) {
alert( var_dump(data) ) // Не вызывается
if (data.ErrorCode == 0) {
alert(data.html)
PHP:
class Controller_Main extends Controller_Common {
...
public function action_get_regions_list_by_state_id() {
$ModelRegion = new Model_Region();
// $this->template = ''; // если раскоментарить эту строку Call to a member function render() on a non-object SYSPATH/classes/Kohana/Controller/Template.php [ 44 ]
...
$ResArray= array('ErrorMessage' => '', 'ErrorCode' => 0, 'html'=> $html ); // Вывожу массив с данными
$this->request->headers('Content-type','application/json; charset='.Kohana::$charset);
$this->response->body( json_encode( $ResArray ) );
// 2 строки выше не выводят ничего на экран кроме общего темплейта
// Если 2 строки выше закоментировать и 2 строки ниже раскоментировать то на экран данные выводятся, но остается проблема общего темплейта
//header("Content-Type: application/json");
//echo json_encode( $ResArray );
}
abstract class Controller_Common extends Controller_Template {
public $template = 'admin/admin_template.tpl'; // Общий темплейт для всех контролов
public function before()
{
...
Как убрать родительский темплейт
если писать
PHP:
// $this->template = ''; // если раскоментарить эту строку то ошибка Call to a member function render() on a non-object SYSPATH/classes/Kohana/Controller/Template.php [ 44 ]