jeudi 4 août 2016

Keeping select values across pages

I have a couple of routes

Route::get('/route_one', 'IndexController@index');
Route::get('/route_two', 'IndexController@index');

They call the same controller function because these pages need the same array of data. This function is as follows

public function index()
{
    $user = Auth::user();
    if( $user ) {
        $fileData = $this->fillArrayWithFileNodes(new DirectoryIterator( public_path(). '/images'));
        $currentPath= Route::getFacadeRoot()->current()->uri();

        if(!empty($fileData)) {
            return view('index', compact('fileData', 'currentPath'));
        }
    } else {
        return view('auth.login');
    }
}

Now the index view is pretty straight forward, but it does has this part

@if($currentPath == 'route_one')
    @include('layouts.searchbarRouteOne')
@endif
@if($currentPath == 'route_two')
    @include('layouts.searchbarRouteTwo')
@endif

So depending on what route is called, a different sidebar is displayed. Now the sidebars essentially contain a load of select inputs like the following

<div class="col-lg-3">
    <div class="form-group">
        <label>Year</label>
        <select id="year" class="form-control">
            <option value=""></option>
            @foreach($fileData["route_one"] as $year => $products)
                <option value=""></option>
            @endforeach
        </select>
    </div>
</div>

Both sidebars have different selects. When select options are selected, an ajax call is made to display an image. This all works fine.

This is my problem. I have a link to get to route_one or route_two. As the page refreshes when the link is clicked, the selects are at their default state. What I would like to do somehow is keep the last state of the select inputs. I am not storing this data within a database which may be an issue?

Furthermore, route_two relies on the select options from route_one. So when route_two is selected, I need to pass it route_ones options.

What would be the best way to achieve what I am after?

Thanks



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire