【问题标题】:How can i update laravel pagination records depends on select option value per page using laravel and ajax?如何更新 laravel 分页记录取决于使用 laravel 和 ajax 每页选择选项值?
【发布时间】:2017-07-18 00:35:17
【问题描述】:

我的目标是使用 ajax 制作带有选择选项菜单和分页的过滤器,选择选项可在每页 10、15、20、25 个产品之间进行选择,并同时使用新记录更新 laravel 默认分页,例如 from 10 个链接到 5 个链接取决于选择选项结果。问题是我可以使用 select 选项过滤每页的产品,但我无法更新 laravel 分页记录。

//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', 'ProductController@index');





 //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);
            }
        });

    }

});

【问题讨论】:

  • 你有什么错误吗?
  • 不,没有错误
  • 您将控件重定向到查看页面,并且再次在 ajax 中调用该控制器,因此在 ajax 重定向中不起作用,您需要检查控制器中的 $request->ajax() 跨度>
  • 让我检查一下
  • 不行!!

标签: php jquery ajax laravel pagination


【解决方案1】:

如果你想在 Ajax 请求后让你的分页工作,我认为这个问题已经在这里得到了回答 Laravel 5: How to Paginate an Ajax Response

【讨论】:

  • 我在这对我来说不是正确的选择之前阅读了这个问题和答案,当我选择将产品数量过滤为 15、20、25 时,我只想链接分页和选项选择products 也是默认的 laravel 分页更新。
  • 在上面的一条评论中,您说没有错误,那么您怎么知道它不起作用?
  • 什么结果或反应表明您分页不能正常工作?
  • 我的目标是使用 ajax 制作一个包含选项选择菜单和分页的过滤器,选项选择以在每页 10、15、20、25 个产品之间进行选择,同时更新 laravel 默认分页有了新的记录,希望这个例子能让我更清楚地理解我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 2016-09-27
  • 2020-12-06
  • 2020-06-07
  • 2018-08-17
  • 2017-02-22
  • 1970-01-01
相关资源
最近更新 更多