2016-07-18 5 views
1

У меня есть представление со столом и разбиением на страницы для этой таблицы, но когда я использую разбиение на страницы, изображение дублируется.Laravel - Pagination не работает хорошо

моя функция контроллера:

public function index() 
{ 
    $items = Items::where('active', '=', 1)->paginate(5); 
    if (Request::ajax()) 
    { 
     return View::make('app/items.index')->with('items', $items)->render(); 
    } 
    else 
    { 
     return view('app/items.index', array('items' => $items));  
    } 

} 

мой JQuery:

function pagination() 
    { 
     $(document).on("click", ".pagination a", function(e) 
     { 
      e.preventDefault(); 
      alert($(this).attr('href')); 
      $.ajax({ 
       url: $(this).attr('href'), 
      }) 
      .done(function(data) 
      { 
       console.log(data); 
       $('#listSearchItems').html(data); 
      }); 


     }); 
    } 

мой взгляд:

@section('content') 
<div class="header"></div> 
<div id="listSearchItem" class="content"> 
<table> 
</table> 
@if($items->render()) 
       <nav class="pagination"> 
        <a href="{{$items->previousPageUrl()}}"> 
         <i class="material-icons">arrow_back</i> 
        </a> 
        <a href="{{$items->nextPageUrl() }}"> 
         <i class="material-icons">arrow_forward</i> 
        </a> 
       </nav> 
      @endif</div>@stop 

И когда я нажимаю на кнопку постраничной код зрения все дублируется в информация о таблице обновляется, а также добавляет все существующие html представления, дублирующие код.

Кто-нибудь может мне помочь? Я уже много разбираюсь в этой проблеме, я не знаю, как вернуть информацию в контроллер.

Thank's

ответ

0

есть некоторые проблемы с вашим кодом. первый, почему вам нужен ajax для отображения ваших данных?

, если вам нужно использовать Ajax визуализации ДАННЫЕ, ваш контроллер должен быть таким:

public function index() 
{ 
    $items = Items::where('active', '=', 1)->paginate(5); 
    if (Request::ajax()) 
    { 
     $datas = $items->items(); 
     $results = ''; 
     foreach ($datas as $item) { 
      $results .="<tr><td>{$item->whateverInYourTable}</td><td>{$item->whateverInYourTable}</td></tr>" 
    } 
     return $results; 

    } 
    else 
    { 
    return view('app/items.index', array('items' => $items)); 
    } 
} 

, если вам не нужен АЯКС контроллер должен быть таким:

public function index() 
{ 
    $items = Items::where('active', '=', 1)->paginate(5); 
    return view('app.items.index', array('items' => $items)); 
} 

вид, как это:

<nav class="pagination"> 
    {!! $items->render() !!} 
</nav>