Php 如何在laravel中使用ajax正确实现简单的搜索功能?
我正试图编写一个简单的搜索功能,以供学习之用,但我未能使其正常工作 我现在想要的只是使用ajax在刀片视图中传递一些数据(到控制器函数),然后通过相同的控制器函数在另一个视图中显示这些数据 我目前拥有的是: 路线:Php 如何在laravel中使用ajax正确实现简单的搜索功能?,php,jquery,ajax,laravel,laravel-5,Php,Jquery,Ajax,Laravel,Laravel 5,我正试图编写一个简单的搜索功能,以供学习之用,但我未能使其正常工作 我现在想要的只是使用ajax在刀片视图中传递一些数据(到控制器函数),然后通过相同的控制器函数在另一个视图中显示这些数据 我目前拥有的是: 路线: Route::get('/search-results', 'HomeController@search')->name('search'); 在HomeController中搜索: public function search(Request $request){
Route::get('/search-results', 'HomeController@search')->name('search');
在HomeController
中搜索:
public function search(Request $request){
$data = $request->data;
return view('search-results')->with('data',$data);
}
搜索结果
视图
@extends('layouts.app')
@section('content')
<h1>{{$data}}</h1>
@endsection
@extends('layouts.app')
@section('content')
<h1 class="header"></h1>
@endsection
有人能帮我做这件事吗?我不确定我做错了什么…AJAX调用是异步的,因此您可以进行调用并以单独的形式返回结果。如果您想以单独的形式显示结果,我建议您提交表单,然后返回包含数据的视图returnview('search-results')->包含('data',$data)
或者如果坚持使用ajax调用,则返回一个响应,该响应将发送到从return response()->json([“data”=>$data])提交数据的表单
您应该返回JsonResponse
对象,以便在JavaScript中轻松使用数据
行动:
public function search(Request $request){
$data = $request->data;
return new JsonResponse(compact('data'));
}
JavaScript:
$.ajax({
url: "/search",
type: "get",
data: {data : data},
success: function(response){
console.log(response);
}
});
路线:
Route::get('/search-results', 'HomeController@search')->name('search');
在HomeController
中搜索:
public function search(Request $request){
$result = [];
$result['data'] = $request->data;
return response()->json($result);
}
搜索结果
视图
@extends('layouts.app')
@section('content')
<h1>{{$data}}</h1>
@endsection
@extends('layouts.app')
@section('content')
<h1 class="header"></h1>
@endsection
希望对你有帮助 您是想在显示搜索结果的情况下重新加载页面,还是想在不重新加载整个内容/导航的情况下更新您所在的页面?@arbuthnott我的ajax位于一个页面上,单击一个按钮后,会执行ajax,然后我想在另一个页面上显示结果-在我的示例中是搜索结果。我的ajax在“home”视图中。在这种情况下,您应该真正使用类似html表单的内容,并将其发布到您的搜索url中。ajax的目的是在从服务器获取结果时保持在同一页面上。(如果没有类似的答案出现,我可以提供一个大致相同的答案)。@arbuthnott是的,你完全正确。我只是用表单做的,它正在工作:)