我是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中加载返回日期。我该如何解决这个问题?
答案 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没有上传所有文件,因为我在远程服务器上开发...有线:)但是谢谢你们:)