我正在尝试为学习目的编写一个简单的搜索功能,但我无法使其正常工作。
我现在想要的只是使用ajax在刀片视图中传递一些数据(到控制器功能),然后通过相同的控制器功能在另一个视图中显示这些数据。
我现在拥有的是:
路线:
Route::get('/search-results', 'HomeController@search')->name('search');
search
中的 HomeController
:
public function search(Request $request){
$data = $request->data;
return view('search-results')->with('data',$data);
}
search-results
视图
@extends('layouts.app')
@section('content')
<h1>{{$data}}</h1>
@endsection
最后是ajax:
var data = "success";
$.ajax({
url: 'search-results',
type: "get",
data: {data : data},
success: function(response){
if(data == "success")
console.log(response);
}
});
有人能帮助我做这项工作吗?我不确定我做错了什么......
答案 0 :(得分:0)
AJAX调用是异步的,因此您可以进行调用并以单独的形式返回结果。如果您想以单独的形式显示结果,我建议您提交表单,然后返回包含数据return view('search-results')->with('data',$data);
的视图,或者如果您坚持使用ajax调用,则会返回将发送的响应到从return response()->json(["data" => $data]);
答案 1 :(得分:0)
您应该将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);
}
});
答案 2 :(得分:0)
路线:
Route::get('/search-results', 'HomeController@search')->name('search');
search
中的 HomeController
:
public function search(Request $request){
$result = [];
$result['data'] = $request->data;
return response()->json($result);
}
search-results
视图
@extends('layouts.app')
@section('content')
<h1 class="header"></h1>
@endsection
Ajax电话:
var data = "success";
$.ajax({
url: "{{ route('search') }}",
type: "get",
data: {'data' : data},
success: function(response){
if(response.data == "success")
console.log(response.data);
$('.header').text(response.data);
}
});
希望它对你有所帮助!!!