我还在学习Ajax是如何工作的,我遇到了这个问题:
@getDashboard
控制器:
$data = Post::latest()->get();
return view('view', ['data'] => $data);
view.blade.php
Page:
<div>
@foreach($data as $post)
<p>{{ $post->ad_title }}</p>
@endforeach
</div>
这将加载数据库中的所有帖子,但新的帖子仅在刷新时出现。如何在不刷新的情况下从数据库加载新帖子,我想使用AJAX?谢谢。
答案 0 :(得分:0)
是的,你可以使用ajax这样做。
如果您想从Laravel控制器返回JSON,您可以非常轻松地完成。 只需返回对象或数组而不是视图。 Laravel将自动返回JSON作为响应。
例如:
getDashboardJson(){
return Post::latest()->get();
}
表单Ajax
如果您调用此方法的相应网址,您将获得所有最新帖子的json。
答案 1 :(得分:-1)
您要做的是创建一个执行XMLHTTP请求的函数,然后使用结果填充页面,然后在该函数上设置间隔。
在PHP中,您需要使用页面中所需的所有数据填充数组。然后,您将对其进行json_encode并将其回显。确保将content-type标头设置为application / json。
在您的Javascript中,您需要:
我建议您为ajax选择2个选项。第一个是Javascript内置的XMLHTTPRequest方法,您可以在here上阅读。替代方案是jQuery.ajax,您可以在here上阅读。两个页面都应该为您提供足够的信息,以便您能够立即投入使用,但如果没有,我很乐意为您准备一些示例。
祝你好运。