在laravel中调用Ajax - 在div中追加数据

时间:2013-11-14 23:10:47

标签: php jquery ajax laravel

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

routes.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调用很棒,但是在MembersController呈现的视图中显示“这是测试”,laravel用url“www.domain.com/members/show/test”打开新页面,然后打印“this is test”。我不想要那个,我只想直接在div中加载返回日期。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您最好返回HTTP Response()

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

    }
}

答案 1 :(得分:1)

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

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

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

      $.ajax({
         url : 'members/show/test',
         ....
      });
});

答案 2 :(得分:0)

我不知道怎么做,但现在它的工作没有任何改变。也许我的IDE没有上传所有文件,因为我在远程服务器上开发...有线:)但是谢谢你们:)