【问题标题】:Laravel Ajax Call to a function in controllerLaravel Ajax 调用控制器中的函数
【发布时间】:2014-11-18 20:23:33
【问题描述】:

我是 laravel 的新手,我想对用控制器编写的函数进行 ajax 调用。我做了以下但没有工作。

在视图中:

$.ajax({
    type: "POST",
    url: 'OrderData', // Not sure what to add as URL here
    data: { id: 7 }
}).done(function( msg ) {
    alert( msg );
});

我的控制器位于 app/controllers/DashBoardController.php 在 DashBoardController.php 里面我有

class DashBoardController extends BaseController {
    public function DashView(){
        return View::make('dashboard');
    }

    public function OrderData(){ // This is the function which I want to call from ajax
        return "I am in";
    }
}

我的问题是如何从页面加载视图到我的 DashBoardController.php 中的函数进行 ajax 调用?谢谢。

【问题讨论】:

  • 对于遇到此需要帮助的其他人,我添加了一个扩展教程作为 post on my website - 希望它有用。

标签: php laravel laravel-4


【解决方案1】:

在您的routes.php 文件中添加

Route::post('/orderdata', 'DashBoardController@OrderData');

然后使用您的 ajax 调用将数据发送到/orderdata,数据将通过DashBoardController 中的OrderData 方法传递给您

所以你的 ajax 调用会变成

$.ajax({
    type: "POST",
    url: '/orderdata', // This is what I have updated
    data: { id: 7 }
}).done(function( msg ) {
    alert( msg );
});

如果你想访问数据,你需要像这样将它添加到你的方法中

class DashBoardController extends BaseController {
    public function DashView(){
        return View::make('dashboard');
    }

    public function OrderData($postData){ // This is the function which I want to call from ajax
        //do something awesome with that post data 
        return "I am in";
    }
}

并更新您的路线

Route::post('/orderdata/{postdata}', 'DashBoardController@OrderData')

【讨论】:

  • 我这样做了,我得到了404 Not Found .. 我在发布这个问题之前尝试了这个。
  • 您的回答确实帮助我找出了我的问题。在 ajax 调用中,您添加了 url : '/orderdata' .. 删除斜线。不过,我犯了一个非常愚蠢的错误。在 Routes.php 中,我使用 get 而不是 post。
  • 嗯,好的,很高兴它帮助了你。我使用/ 假设您从根目录开始。相应地更新您的网址。
  • 另外你能告诉我如何创建一个简单的模式并从数据库中获取数据..任何链接都会有用..谢谢
  • 当然,我无法在 cmets 中真正描述它,但如果您还没有查看 Laracasts
猜你喜欢
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 2018-07-27
  • 2010-11-26
  • 2020-10-17
  • 2017-06-06
  • 2014-10-07
  • 2012-11-20
相关资源
最近更新 更多