2017-02-06 4 views
1

я нужен мой проект имеет вид SERACH, то я пытался с этим кодом, но когда я исполняю консоль сказать POST http://localhost:8000/buscar 500 (Internal Server Error) то вот мой взглядпоиск с помощью AJAX Laravel

<div id="qnimate" class="off"> 
    <div id="search" class="open"> 
     <button data-widget="remove" id="removeClass" class="closeSearch" type="button">×</button> 
      <input type="text" placeholder="Buscar Noticias - Articulos - Reviews" id="buscar" onkeydown="keydownFunction()" onkeyup="keyupFunction()"> 
      <button class="btn btn-lg btn-site" type="submit"><span class="glyphicon glyphicon-search"></span> Buscar</button> 
     <div id="resultadoBusqueda" class="col-md-12"></div> 
    </div> 
</div> 

здесь мой контроллер

public function buscar() 
    { 
     $keywords = Input::get('keywords'); 
     $reviews = Reviews::where('estado','1')->take(); 
     $buscarReviews = new \Illuminate\Database\Eloquent\Collection(); 
     foreach ($reviews as $review) { 
      if(Str::contains(Str::lover($review->nombre), Str::lover($keywords))) 
       $buscarReviews->add($review); 
     } 
     return view::make('busqueda')->with('buscarReviews', $buscarReviews); 
    } 

здесь вид которым показать информацию

@foreach($buscarReviews as $review) 
    <div id="reviews" class="col-md-12"> 
     <a href="/review/{{$review->slug}}" class="link"></a> 
     <div class="col-md-4"> 
      <img src="Imagenes/{{$review->logo}}" width="50"> 
     </div> 
     <div class="col-md-8"> 
      <h2>{{$review->nombre}}</h2> 
      <div>{!! str_limit($review->descripcion, $limit = 150, $end = '...') !!}</div> 
     </div> 

    </div> 
@endforeach 

здесь my js

var timer; 
    function keydownFunction(){ 
    timer = setTimeout(function(){ 
     var keywords = $('#buscar').val(); 

     if(keywords.length > 0){ 
      $.post('/buscar', {keywords: keywords}, function(markup){ 
      $('#resultadoBusqueda').html(markup); 
      }); 
     } 

    }, 500); 
    } 
    function keyupFunction(){ 
    clearTimeout(timer); 
    } 

Я не знаю, в чем причина, не печатайте запрашиваемую информацию. Спасибо.

+0

Когда вы получаете 500 код статуса, вы можете увидеть подробную вывод ошибок в лог-файл (в папке хранения). Вы также можете установить APP_DEBUG в true, чтобы видеть ошибки в браузере. –

+0

Ошибка возникает у вашего контроллера. Убедитесь, что вы включили в свой контроллер 'Input',' Reviews' и 'Str'. Вы также можете проверить консоль браузера, чтобы увидеть фактическую ошибку. – EddyTheDove

+0

Я проверяю консоль, и я нахожу это «jquery-1.12.4.js: 10254», и я проверил и скажу «xhr.send ((options.hasContent && options.data) || null);' – sittelle

ответ

0

вы отправляете запрос пост от AJAX, но в вашем контроллере вы пытаетесь получить это значение, используя получить, попробуйте этот код

public function buscar(Request $request) { $keywords = $request->keywords; $reviews = Reviews::where('estado','1')->take(); $buscarReviews = new \Illuminate\Database\Eloquent\Collection(); foreach ($reviews as $review) { if(Str::contains(Str::lover($review->nombre), Str::lover($keywords))) $buscarReviews->add($review); } return view::make('busqueda')->with('buscarReviews', $buscarReviews); }

также не забудьте изменить в маршруте, как это.

Route::post('buscar', '[email protected]');

+0

да, я попробовал но все равно получите http: // localhost: 8000/buscar 500 (Internal Server Error) jquery-1.12.4.js: 10254' я не знаю, почему – sittelle

+0

вы можете написать свои текущие коды? –

Смежные вопросы