Php Laravel在视图渲染后调用函数
我在一个laravel网站上工作,该网站具有搜索航班/酒店等基本功能。。 我想做的一件事是在用户提交搜索信息后显示加载页面,以便在API运行时显示一些动画 问题是我无法找到一种方法来显示页面并同时运行控制器代码。我一直在尝试从我的PagesController将FlightsController传递到视图 PagesController.php 然后在flight search视图中调用函数,如下所示 flight-search.blade.phpPhp Laravel在视图渲染后调用函数,php,laravel,view,Php,Laravel,View,我在一个laravel网站上工作,该网站具有搜索航班/酒店等基本功能。。 我想做的一件事是在用户提交搜索信息后显示加载页面,以便在API运行时显示一些动画 问题是我无法找到一种方法来显示页面并同时运行控制器代码。我一直在尝试从我的PagesController将FlightsController传递到视图 PagesController.php 然后在flight search视图中调用函数,如下所示 flight-search.blade.php @extends('app') @节(“内容”
@extends('app')
@节(“内容”)
正在搜索可用的票证。。。
{{$FlightsController->search($user\u input)}
@端部
但是页面加载总是等待函数调用完成,search()方法本身返回下一个带有搜索结果的视图
关于我应该如何处理这个问题,有什么建议吗?只有在处理完整个请求后,服务器才会发送响应,因此您尝试执行的操作将不起作用。一个常见的解决方案是显示加载屏幕,向服务器发送AJAX请求以获取结果,并且在加载结果后,隐藏加载屏幕并显示结果。当然,这必须用Javascript而不是PHP来完成 因此,情况将是:
- 用户填写表单
- 用户点击“搜索”
- 用Javascript显示加载屏幕
- 将AJAX请求发送到后端,以使用Javascript获得结果
- 获取结果时,隐藏加载屏幕并用Javascript显示结果
public function flight_search( Request $request )
{
$FlightsController = new FlightsController();
return view('flights.flight-search', [
'FlightsController' => $FlightsController,
'user_input' => $request
]);
}
@extends('app')
@section('content')
<div class="container-fluid">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="page-heading">Searching for available tickets...</div>
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="progress">
<div class="progress-bar progress-bar-striped progress-bar-warning active" role="progressbar" aria-valuemin="0" aria-valuemax="100" style="width:100%">
</div>
</div>
</div>
</div>
</div>
{{ $FlightsController->search( $user_input ) }}
@endsection