Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

IT2704's avatar

I'm trying to do autocomplete search with laravel, with the code below i don't get any error but nothing happens

metiercontroller.php

    public function index()
    {
    $Listmetier=metier::all();
    return view('metier.index');
    }

   public function search(Request $request)
   {
   if ($request->ajax()) 
   {
   $output="";
   $metiers = $metiers->where('libelle_metier', 'like', '%' . $search . '%')
    ->orderBy($id, $sort)
    ->paginate(5)
    ->withPath('?search=' . $search . '&gender=' . $gender . '&field=' . $id . '&sort=' . $sort);
    if ($metiers)
    {
        foreach ($metiers as $key => $metiers) {
        $output.='<tr>'.
                '<td>'.$metiers->id.'</td>'.
                '<td>'.$metiers->libelle_metier.'</td>'.
                '</tr>';   
    }
    return Response($output);
    }else
    {
        return Response()->json(['no'=>'not found']);
    }
    }
   }

index.blade.php

  @extends('Layouts.app')
  @extends('Layouts.master')
  @section('content')
  <link rel="stylesheet"   
   href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <div class="col-lg-12">
    <h1 class="page-header">Metier</h1>
  </div>
  <div class="row">
    <div class="col-lg-12">
        <div class="panel panel-default">
            <div class="panel-heading">
                Liste des Metiers
                <div class="pull-right">
                    <a href="{{url('metier/create')}}">Ajouter Metier</a>
                </div>
            </div>
            <div class="panel-body">
            <div class='form-group'>
                <input type="text" class="form-control" name="search" id="search"></input>
            </div>
            <!-- /.panel-heading -->
            <div class="panel-body">
            <div class="table-responsive">
                <table class="poster-table table table-striped table-bordered table-hover    
     tableable">
                    <thead>
                        <tr>
                            <th>libelle metier</th>
                        </tr>
                    </thead>
                    <tbody>
                        //////////
                    </tbody>
                </table>
            </div>
        </div>

      </div>
     <script type="text/javascript">
    $('#search').on('keyup',function){
    $value=$(this).val();
    $.ajax({
        type: 'get',
        url : '{{URL::to('search')}}',
        data : {'search':$value},
        success:function(data){
            $('tbody').html(data);
        } 
     });
     }
  </script>        
  </div>
  @endsection

route.php

   Route::get('/metier', 'MetierController@index');
   Route::get('/metier/search', 'MetierController@search');
0 likes
1 reply
bobbybouwmann's avatar

Do you get any errors in your developer console in the browser?

Also Response($output) is not a method. It should be response($output)

Please or to participate in this conversation.