2016-11-17 81 views
2

我試圖讓AJAX搜索到我的應用程序,但我有一個問題。如何解決Laravel中的AJAX搜索?

如果我做錯什麼,請糾正我,我是AJAX

我的路線:

Route::get('/retours/{id}/searchpart/{searchquery}', '[email protected]'); 

我的表和搜索表單中,瓦爾被註釋掉了,否則我總是得到一個錯誤,並不能測試。

{!! Form::open(['class' => 'form-horinzontal']) !!} 
    {!! Form::text('search', null, array('required','class'=>'form-control','placeholder'=>'Zoeken in onderdelen','onkeyup' => 'search_data(this.value, "result")')) !!} 
    {!! Form::submit('zoek', array('class'=>'btn btn-info form-control')) !!} 
{!! Form::close() !!} 
<br> 

<table id="myTable" class="tablesorter"> 
    <thead> 
    <tr> 
     <th>Artikelcode</th> 
     <th>Artikelcode verkoop</th> 
     <th>Omschrijving</th> 
     <th>Prijs</th> 
     <th>Actie</th> 
    </tr> 
    </thead> 
    <tbody> 
    @if(isset($resultquery)) 
     @foreach($resultquery as $result) 
      <tr> 
       <td> 
        <a href="{{ url('/parts', $result->id) }}"> 
         {{ $result->artikelcode }} 
        </a> 
       </td> 
       <td> 
        {{--{{ $result->artikelcodeverkoop }}--}} 
       </td> 
       <td> 
        {{--{{ substr($result->omschrijving,0,50) }}--}} 
       </td> 
       <td> 
        {{--€ {{ $result->prijs }}--}} 
       </td> 
       <td> 
        {{--<a href="{{ url('/retours/' .$retour->id . '/addpart/'. $result->id) }}" style="margin-right: 10px;" class="pull-right">--}} 
        <i class="fa fa-plus"></i> 
        Aan bon toevoegen 
        </a> 
       </td> 
      </tr> 
     @endforeach 
    @else 

    @endif 
    </tbody> 
</table> 

而且我當然控制器:

public function searchpart(Request $request, $searchquery){ 

    $data = Parts::where('omschrijving','LIKE', '%' .$searchquery.'%')->get(); 

    return view('retour.updatefill')->with('resultquery',$data); 

enter image description here

AJAX ofcourse:

function search_data(search_value) { 
     $.ajax({ 
      url:'searchpart/' + search_value, 
      method: 'GET' 
     }).done(function(response){ 
      $('#myTable').html(response);   
     }); 
    } 
  • 有時候我500互聯網服務器錯誤

  • 有時我找不到404

我有我這樣做非常錯誤的感覺。

錯誤的madalin要求: enter image description here

+0

哪裏是你'ajax'? –

+0

對不起,我添加了@ParthTrivedi – Rubberduck1337106092

+0

請'控制檯(search_value)'你是否一直得到它? –

回答

0

使用GET變量不是自定義路線

Route::get('/retours/{id}/searchpart', '[email protected]'); 

public function searchpart(Request $request){ 
    $searchquery = $request->get('searchquery'); 
    $data = Parts::where('omschrijving','LIKE', '%' .$searchquery.'%')->get(); 

    return view('retour.updatefill')->with('resultquery',$data); 

AJAX:

function search_data(search_value) { 
     $.ajax({ 
      url:'{{action("[email protected]")}}' , 
      data:{searchquery:search_value} 
      method: 'GET' 
     }).done(function(response){ 
      $('#myTable').html(response);   
     }); 
    } 
+0

你好,謝謝你,{{action}}需要參數什麼我應該給它? – Rubberduck1337106092

+0

傳遞路由'{id}'的id,如'action('UserController @ profile',['id'=> 1]);' – madalinivascu

+0

我仍然收到內部服務器錯誤...有這個事情與csrf令牌? – Rubberduck1337106092

0

你應該回到json response到Ajax回調。

試試這個:

public function searchpart(Request $request, $searchquery){ 

    $data = Parts::where('omschrijving','LIKE', '%' .$searchquery.'%')->get(); 

    return response()->json([ 
     'data' => $data 
    ], 200); 
} 

阿賈克斯

.done(function(response){ 
    //do something 
    console.log(response.data);  
}); 
+0

爲什麼附加一個HTML JSON的頁面? – madalinivascu