0

我是 Laravel 世界的新手,但我需要了解并清楚自己的基本知识。所以我有一个问题。我想对控制器进行 ajax 调用,并在视图中的现有 div 元素中返回和打印数据。视图由另一个控制器呈现。基本上,我想在用户等待加载数据时显示加载圈。这是代码:

路由.php

Route::get('/members', "MembersController@index");
Route::get('/members/show/{provider}', 'AjaxController@main');

AjaxController.php

class AjaxController extends BaseController
{
    public function main($provider)
    {
        if($provider == 'test')
        {
            return "this is test";
        }

    }
}

在视图中,我有一个调用 ajax 的链接和一个空 div。Ajax 调用工作得很好,但在从 MemberController 呈现的视图中显示“这是测试”,laravel 会打开带有 url “www.domain.com/members/show/test”的新页面,然后打印“这是测试”。我不想那样,我只想直接在 div 中加载返回日期。我该如何解决?

4

3 回答 3

1

由于您使用链接来调用 AJAX 调用,我认为您还没有关闭链接的默认行为。

通常我会使用 JQuery 来解决这个问题。

$('#element-to-invoke-ajax').click(function(event){
      event.preventDefault();

      $.ajax({
         url : 'members/show/test',
         ....
      });
});
于 2013-11-15T05:59:21.573 回答
1

你最好返回一个 HTTP Response()

class AjaxController extends BaseController
{
    public function main($provider)
    {
        if($provider == 'test')
        {
            return Response::json(array('success' => true, 'message' => 'this is test'));
        }

    }
}
于 2013-11-15T00:58:51.117 回答
0

我不知道如何,但现在它可以正常工作,没有任何变化。也许我的 IDE 没有上传所有文件,因为我在远程服务器上开发...有线 :) 但是谢谢大家 :)

于 2013-11-15T12:41:00.797 回答