Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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中使用ajax正确实现简单的搜索功能?_Php_Jquery_Ajax_Laravel_Laravel 5 - Fatal编程技术网

Php 如何在laravel中使用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){

我正试图编写一个简单的搜索功能,以供学习之用,但我未能使其正常工作

我现在想要的只是使用ajax在刀片视图中传递一些数据(到控制器函数),然后通过相同的控制器函数在另一个视图中显示这些数据

我目前拥有的是:

路线:

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是的,你完全正确。我只是用表单做的,它正在工作:)