2017-02-27 96 views
0

我的目標是使用選擇選項菜單和使用ajax進行分頁的過濾器,選擇選項可以在每頁10,15,20,25個產品之間進行選擇,並同時更新laravel默認分頁和新記錄,例如10指向5個鏈接的鏈接取決於選擇選項的結果。問題是我可以使用select選項每頁過濾產品,但我無法更新laravel分頁記錄。如何更新laravel分頁記錄取決於使用laravel和ajax選擇每個頁面的選項值?

//the select option list 
<label>Show</label> 
<select id="selectAmount"> 
    <option id="tweleve" value="10" selected="selected">10</option> 
    <option id="fifteen" value="15">15</option> 
    <option id="thirty" value="20">20</option> 
</select> 






//the view products.blade.php 
<div class="products"> 
    <ul id="prods"> 
     @foreach($products as $product) 
     <li>{{ $product->title }}</li> 
     <li>{{ $product->image }}</li> 
     <li>{{ $product->price }}</li> 
     @endforeach 
    </ul> 
    {{ $products->links() }} 
</div> 





    //the partial view partials.products.php 
    <li>{{ $product->title }}</li> 
    <li>{{ $product->image }}</li> 
    <li>{{ $product->price }}</li>  




    // the route 
    Route::get('products', '[email protected]'); 





//the controller 
public function index(Request $request) 
{ 

     if($request->ajax()) { 
      $amount = $request->input('amount'); 
      $products = Product::paginate($amount); 
      $list = []; 

      foreach($products as $product){ 
       $html = view('partials.prodperpage') 
         ->with('product', $product) 
         ->render(); 

       $list[] = $html;   
      } 

      return response()->json($list); 
     } 


     $products = Product::paginate(9); 
     return view('pages.products', compact('products')); 

} 


//the ajax request 
$('#selectAmount').change(function() { 

    var selected = $('#selectAmount option:selected'); 
    var myurl = '/products'; 
    $('#prods').empty(); 

    if(selected.val() <= 30) { 
     var amount = selected.val(); 

     $.ajax({ 
      type: 'GET', 
      url: myurl, 
      data: {amount:amount}, 
      success: function(data) {  
       $('#prods').append(data); 
      } 
     }); 

    } 

}); 
+0

你得到任何錯誤? – sunilwananje

+0

Nope沒有錯誤 –

+0

您正在將您的控件重定向到查看頁面,並且您再次在ajax中調用該控制器,因此在ajax重定向不起作用時,您需要在控制器中檢查$ request-> ajax() – sunilwananje

回答

0

如果你想要一個Ajax請求後能得到您的分頁的作品,我認爲這個問題已經在這裏找到答案 Laravel 5: How to Paginate an Ajax Response

+0

我讀到這個問題和答案之前,它不是我的正確選擇,所有我想鏈接分頁和選項選擇,當我選擇過濾產品的數量15,20,25產品也默認laravel分頁更新。 –

+0

在上面的一條評論中,你說過沒有錯誤,所以你怎麼知道它不起作用? –

+0

這是什麼結果或反應,表明你的分頁不能正常工作? –