Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用ajax-Laravel将参数传递给eloquent_Php_Jquery_Ajax_Laravel_Laravel 5 - Fatal编程技术网

Php 使用ajax-Laravel将参数传递给eloquent

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_

我有一个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()
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即使我修复了它,它仍然没有改变任何东西