Php 使用ajax-Laravel将参数传递给eloquent
我有一个laravel应用程序,当我单击表单元格中的链接时,我想在其中获取一些ajax数据。我要做的是传递一个参数,用于有说服力的查询。下面是javascript:Php 使用ajax-Laravel将参数传递给eloquent,php,jquery,ajax,laravel,laravel-5,Php,Jquery,Ajax,Laravel,Laravel 5,我有一个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_
$('#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()
URL路径是有效kpi数据
,而定义的Laravel路由路径是/validate/valid kpi数据
。您缺少AJAX请求URL开头的validate/
。@Hackerman如果我使用$。post
会抛出Error 405 method not allowed
现在我有了它。只需更改这段代码:$id=$\u post('kpi\u id')
到这个:$id=$\u GET('kpi\u id')代码>@Bogdan即使我修复了它,它仍然没有改变任何东西