使用ajax调用laravel 4.2控制器方法

时间:2016-06-15 13:10:59

标签: php ajax laravel laravel-4

你好我有这个div或锚标签,当点击我会得到它的ID,我需要该ID存储在我的laravel会话,因为id是一个javascript我需要使用ajax,以便我可以以某种方式使PHP看到id的值。在我的控制器NSAController中,我创建了这个简单的方法

public function set($name)
{
    Session::put('TIDN' , $name);
}

我在想是否可以在我的ajax中调用此方法?关于如何使这项工作的任何想法?提前谢谢!

1 个答案:

答案 0 :(得分:0)

所以你想对该函数发出一个AJAX请求吗?

您需要创建一个引用它的路由,然后调用:

Route::post('ajax/setid', 'NSAController@set');

然后,您将在页面上使用Javascript发送请求以及ID。您可以将其作为变量发送,或将其包含在URL中以直接在函数定义中访问它:

Route::post('ajax/setid/{name}', 'NSAController@set'); 
//Now $name will be available in your function

您可以请求:ajax/setid/10

如果您特别询问如何执行AJAX请求,则取决于您的库。使用Jquery,它就像下面这样简单:

$.ajax({
   method: "POST",
   url: "/ajax/setid",
   data: { id: newid }
})
.done(function( msg ) {
   //Done
});

或者,如果您在URL中包含var:

$.ajax({
   method: "POST",
   url: "/ajax/setid/"+newid
})
.done(function( msg ) {
   //Done
});

现在,对此网址的任何AJAX调用都会在您的NSAController

中调用您的函数

如果您使用的是Jquery之类的东西,可以在按钮的点击功能中包装该AJAX调用:

$(".button").click(function() {
    var newid = $(this).attr('id') //Returns ID of clicked element

    //AJAX code here
});