我正在通过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.
标签:laravel,ajax,php
来源: https://codeday.me/bug/1120/2046836.html