Laravel - 动态地使用ajax从DB加载新内容

时间:2017-01-20 00:16:02

标签: javascript php jquery ajax

我还在学习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?谢谢。

2 个答案:

答案 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中,您需要:

  • XMLHTTP请求信息
  • 如果有错误,请处理
  • JSON.Parse it into a array
  • 验证它(您可以在数组中返回没有找到任何信息)
  • 更新您的HTML

我建议您为ajax选择2个选项。第一个是Javascript内置的XMLHTTPRequest方法,您可以在here上阅读。替代方案是jQuery.ajax,您可以在here上阅读。两个页面都应该为您提供足够的信息,以便您能够立即投入使用,但如果没有,我很乐意为您准备一些示例。

祝你好运。