如何根据laravel中选择的选项刷新页面

How to refresh a page according to the selected option in laravel

本文关键字:选项 刷新 选择 何根 laravel      更新时间:2023-09-26

我是javascript的新手,如何在laravel中选择页数后刷新页面。

我的控制器代码

$itemCount = Input::get('item_count');
    $data = [
        'allItems'      => $venueData->get(),
        'priorityItems' => $venueData->take($itemCount)->get()
    ];

我的视图代码

<div class="form-group select-page">
    <select class="form-control" id="sel1" name="item_count">
        <option value="10" @if(Input::has('item_count') && Input::get('item_count') == '10') selected @endif>1</option>
        <option value="20" @if(Input::has('item_count') && Input::get('item_count') == '20') selected @endif>2</option>
        <option value="40" @if(Input::has('item_count') && Input::get('item_count') == '40') selected @endif>60</option>
        <option value="80" @if(Input::has('item_count') && Input::get('item_count') == '80') selected @endif>80</option>
        <option value="100" @if(Input::has('item_count') && Input::get('item_count') == '100') selected @endif>100</option>
    </select>
</div>

如何根据选项

刷新页面并加载项目

实现如下。。。

$('#sel1').change(function(){
    var value = $(this).val();
    // here redirect to link with item_count value
});

在您的Laravel Action 中

public function your_action(Request $request)//inject request to access per_page query param
{
    $perPage = $request->query('per_page', 10);
    $items =  YourModel::paginate($perPage)->appends([
        'per_page'   => $perPage
    ]);
    return view('your_view', compact('items', 'perPage'));
}

现在在您的JS 中

<div class="form-group select-page">
    <select class="form-control" id="sel1" name="item_count" onchange="window.location.href = window.location.href.replace('per_page={{ $perPage }}', '') + 'per_page=' + this.value">
        <option value="10" @if($perPage == '10') selected @endif>1</option>
        <option value="20" @if($perPage == '20') selected @endif>2</option>
        <option value="40" @if($perPage == '40') selected @endif>60</option>
        <option value="80" @if($perPage == '80') selected @endif>80</option>
        <option value="100" @if($perPage == '100') selected @endif>100</option>
    </select>
</div>

onchange正在运行脚本时。当window.location.href为某个值时,您将重定向到一个url&它发生在更改select的选项值时。

在这里,window.location.href.replace('per_page={{ $perPage }}', '')实际上是将per_page=10per_page=20替换为per_page的任何查询键值,这样它就不会在url中重复。

下一个'per_page=' + this.value,我们再次附加per_page值。