Laravel - 使用Ajax从数据库中获取数据
问题描述:
我试图通过点击按钮来获取数据。Laravel - 使用Ajax从数据库中获取数据
这是我在我的控制器返回数据:
public function fetch()
{
$channels = Channel::where('channel', \Auth::user()->username)
->orderBy('created_at','desc')->take(3)->get();
View::share ('channels', $channels);
}
这是jQuery的文件:
“加载请等待”的部分工作,但成功,我不能”让它提示。我错过了什么?
答
你Laravel方法:
public function fetch()
{
$username = \Auth::user()->username;
$channels = Channel::where('channel', $username)->orderBy('created_at', 'desc')->take(3)->get();
// Return as json
return Response::json($channels);
}
而JavaScript。
$(document).ready(function() {
$('#dropdownMenu').on('click', function() {
// Add loading state
$('.testdropdown').html('Loading please wait ...');
// Set request
var request = $.get('/channels/fetch');
// When it's done
request.done(function(response) {
console.log(response);
});
});
});
你有你的dataType设置为HTML,你正在返回一个视图中的PHP对象。你应该返回$ messages-> toJson();并设置你的ajax dataType:'json',然后用你的javascript解析json来填充你的下拉菜单$ .each(data,function(i,obj){.. – futureweb
like'return response() - > json(['channels '=> $ channels],200;'? – senty
首先你不应该从控制器加载视图,因为你只是将数据从你的ajax请求发送回现有的视图,这就是ajax请求的全部点。 (..用于返回$ messages-> toJson();然后将您的ajax dataType更改为'json',并使用jquery $ .each函数来填充下拉列表的值和标签 – futureweb