У меня есть приложение laravel, где я хочу получить некоторые данные ajax, когда я нажимаю ссылку внутри ячейки таблицы. То, что я хочу сделать, это передать параметр для использования в красноречивом запросе. Вот javascript:
$('#monthly_table tbody').on('click', 'td.details-controls', function () {
var tr = $(this).closest('tr');
var row = table.row(tr);
//row.data().kpi_id -> the parameter to be passed
$.get('valid-kpi-data?kpi_id='+row.data().kpi_id, function(data){
console.log(data);
});
});
И вот route.php
Route::get('/validate/valid-kpi-data', function(){
if(Request::ajax()){
$id = $_POST('kpi_id'); //this is the parameter i want to be passed
$year = Carbon::now()->subYear()->format('Y');
$kpis = DB::table('reports')
->where('year', '>=', $year)
->where('is_validated', 1)
->where('kpi_id',$id)
->take(25)
->orderBy('month', 'desc')
->get();
return Response::json($kpis);
}
});
Я пробовал это несколькими способами, и я знаю, что id
передается как строка запроса с запросом. Однако я ничего не могу вернуть. Ниже изображение - это то, что он поворачивает каждый раз.
Любая помощь приветствуется
Вы можете попробовать следующее:
$.getJSON('validate/valid-kpi-data/'+row.data().kpi_id, function(data){
console.log(data);
});
Затем измените объявление маршрута, как показано ниже:
Route::get('/validate/valid-kpi-data/{kpi_id}', function($id){
if(Request::ajax()){
// $id is available now so use $id in where clause
}
//...
});
$.post
вместо$.get
:)$.get()
имеет значениеvalid-kpi-data
а заданный путь маршрута Laravel -/validate/valid-kpi-data
. Вам не хватаетvalidate/
в начале URL-адреса из запроса AJAX.