У меня проблема с Ajax при работе с фремворком Kohana. Как отправить параметры из браузера в экшены Kohana?
Необходимо создать приложение где параметры из JQuery будут Ajax-сом отправляться а экшен Kohana.
Есть экшен - action_timers_list_ajax() он должен получить от Jquery два параметра и возвращать JSON код, для создания постраничной навигации на странице. Параметры: lines - число записей на странице и pages - число страниц.
Главная проблема возникает на стороне контроллера в экшене, он не получает переменных от GET запроса. Я пробовал использовать метод $this->request->query('lines'); но он не работает. Какие методы нужно использовать чтобы передавать через GET параметры в контроллер, используя Ajax ?
Пример моего jQuery кода:
$.ajax({
type:"GET",
url: "timerslist",
data: {"lines": "555", "pages": "1"}
contentType: 'application/json',
dataType: "json"
}).done(function(response){
console.log(response);
}).fail(function(xhr, textStatus, error){
console.log(xhr);
});
Возможно проблема в настройках файла bootstrap.php и необходимо изменить пути ? Я создал путь timerslist к которому со стороны jQuery и идет обращение
Пример кода в bootstrap:
Route::set('timerslist', 'timerslist(<controller>(/<action>))')
->defaults(array(
'directory' => 'index',
'controller' => 'timer',
'action' => 'timers_list_ajax',
));
Пример кода экшена:
// Ajax action (rout - timerslist)
public function action_timers_list_ajax(){
$lines = (int) $this->request->query('lines');
$pages = (int) $this->request->query('pages');
$data = array(
'lines' => $lines,
'pages' => $pages
);
var_dump($lines);
exit;
if (Request::initial()->is_ajax()){
header('Content-Type: text/json; charset=utf-8');
json_encode($data);
exit;
}
}
Я пытался найти, изменил экшен action_timers_list_ajax(), так чтобы к нему можно было обращаться напрямую из браузера и передавать переменные методом GET. В браузере набирал путь:
localhost/my_project/timerslist?lines=555&pages=1
Измененный код
// Ajax action
public function action_timers_list_ajax(){
// GET request
$lines = (int) $this->request->query('lines');
$pages = (int) $this->request->query('pages');
$data = array(
'lines' => $lines,
'pages' => $pages
);
var_dump($data);
exit;
}
Но все равно переменные в метод action_timers_list_ajax() не попадают, var_dump() выводит пустую строку.