2015-07-20 21 views
-1

我有一个laravel应用程序,当我点击表格单元格内的链接时,我想获得一些ajax数据。我想要做的是传递一个参数用于雄辩的查询。这里是JavaScript:将参数传递给与ajax雄辩 - Laravel

$('#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被作为查询字符串与请求通过。但是我无法得到任何回报。下面的图片是它每次转动的东西。

enter image description here

任何帮助表示赞赏

+0

只需使用'$。员额'而不是'$ .get' :) – Hackerman

+1

你的'.get()'URL路径是'valid-kpi-data '而定义的Laravel路径路径是'/ validate/valid-kpi-data'。您错过了AJAX请求中网址开头处的“validate /”。 – Bogdan

+0

@Hackerman如果我使用'$ .post',它会抛出'错误405方法不允许' – xhulio

回答

1

你可以试试这个:

$.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 
    } 
    //... 
});