2017-02-27 1 views
0

私の目標は、ajaxを使用して選択オプションメニューとページ番号でフィルタを作成することです。選択オプションは、ページあたり10,15,20,25の製品を選択し、同時に10からの新しいレコードでlaravelのデフォルトページ付けを更新します5つのリンクへのリンクは、選択オプションの結果によって異なります。問題は、私は選択オプションでページごとに製品をフィルタリングできますが、私は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

いいえエラーはありません –

+0

コントロールを表示ページにリダイレクトしていますが、再度コントローラをajaxで呼び出しているため、リダイレクト機能が動作していない場合はコントローラの$ request-> ajax()を確認する必要があります – sunilwananje

答えて

0

あなたのページネーションは、Ajaxリクエストの後に動作を取得したい場合、私はこの質問はすでにここ Laravel 5: How to Paginate an Ajax Response

+0

私はこの質問と回答を読んでから、私にとって適切な選択ではありません。私はページ分割とオプション選択の両方をリンクしたいと思います.15、20、 。 –

+0

上記の1つのコメントでは、あなたはエラーがないので、どうやってそれがうまくいかないことを知っていますか? –

+0

ページネーションが正しく機能しないことを示す結果や反応は何ですか? –

関連する問題