Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态更新Laravel视图_Php_Ajax_Laravel - Fatal编程技术网

Php 动态更新Laravel视图

Php 动态更新Laravel视图,php,ajax,laravel,Php,Ajax,Laravel,我通过JS从API加载数据,将数据发送到Laravel控制器,并将其保存到数据库中。加载所有Ajax后,我希望在master.blade的子视图/部分中显示数据—是否可以在页面加载完成后动态呈现视图—也希望稍后更新数据库行并在视图中动态显示新数据 //afater Ajax loading - update / display the data in the view public function loadcomments() { $comments = Comment::all();

我通过JS从API加载数据,将数据发送到Laravel控制器,并将其保存到数据库中。加载所有Ajax后,我希望在master.blade的子视图/部分中显示数据—是否可以在页面加载完成后动态呈现视图—也希望稍后更新数据库行并在视图中动态显示新数据

//afater Ajax loading - update / display the data in the view
public function loadcomments() {
    $comments = Comment::all();
    $childcomment = Childcomment::all();
    return View::make('partial')
    ->with(compact('comments'))
    ->with(compact('childcomments'));
}
在user.blade.php(主站点)中,我定义

@section('comments')
    @include('partial')
@stop
在master.blade.php中,我定义了收益率:

@yield('content')

@yield('comments')


你知道如何用更新的内容呈现网站吗?

一旦页面加载完毕,不需要对Laravel应用程序进行更多的AJAX调用,它将不再参与请求

您可以只使用JS更新前端标记,也可以使用AJAX/jQuery回调您的Laravel应用程序,以便在将数据添加到数据库后将其拉出

使用资源控制器或类似的实现来允许插入和读取注释(CRUD),这样您就可以在需要使用AJAX时提取数据

编辑

有不同的方法在前端使页面动态所有这些方法通常包括Javascript或其他前端脚本语言

在过去,我使用jQuery处理使用JSON或XML/HTML的页面内容更新,但最近我开始使用AngularJS。 另一个库是EmberJS,我目前正在学习使用它,但我觉得前端语言已经超出了这个问题的范围

有许多教程介绍如何在页面加载后通过回拨控制器或其他资源路由更新HTML

假设帖子已保存到数据库中,如果在视图返回到浏览器后执行此操作,则必须使用javascript提取数据,并且很可能有一段js代码来勾选“轮询”资源控制器以获取新评论

如果检测到新的注释,则会发出第二个请求以提取注释,或者使用AJAX从轮询请求返回注释

在laravel方面,可以返回部分视图或JSON,为简单起见,我们将替换该视图。您可以在浏览器上为当前现有的分部创建一个jQuery选择器,然后将其替换为使用AJAX从Laravel中提取的部分

$('some page.my view to update').html(somedata)

我的jQuery非常生疏,因此请阅读相关文档以正确更新HTML

You can also use Pusher
看看这个

您可以使用JS重新加载页面,以强制Laravel返回新数据,但如果您可以利用simpe Jquery查询更新正确的组件,您只需从控制器返回子视图,并替换页面中要更新的部分。好的,我理解-如果在将数据添加到数据库,如何更新前端?也许我会在ajax加载完成并且新数据在DB中之后重新加载页面?“您可以从控制器返回子视图,并替换页面中要更新的部分”-如何做到这一点?这其实是我的问题;)好吧,thx——不管怎样,我尽量避免使用.html或.append,因为我使用的是我想稍后通过DOM访问的ID;我在加载来自数据库的页面时也遇到了问题,然后我开始使用jQuery和javascript,这把我的一个项目搞砸了。使用AngularJS将是一个不错的选择。这可能会回答这个问题,但答案的关键部分应该在这里