我正在创建网站,在从索引页面选择状态后,如果我从一个页面移动到另一页面,所有页面都将相同。我正在下拉列表中获取数据并将其保留在网站的右上角。但是当我选择状态并移至第二页时,我很困惑,它再次更改,它要求选择状态。请告诉我如何在 session 中存储状态以及如何在所有页面中访问。
Controller :
public function getState()
{
$state=\App\State::all();
return view('index',compact('state'));
}
并且所有页面都包含状态:
<div class="selectregion">
<br>
<select style="margin-left:10px;" class="show-tick form-control" name ="state" id="state">
<option value="">Select State</option>
@foreach($state as $state_name )
<option value="{{ $state_name->state_id }}">{{ $state_name->state_name }}</option>
@endforeach
</select>
</div>
</div>
最佳答案
要保存状态值,您应该在选择值更改时设置 session 。
所以我建议创建 select 的 onchange
事件。
示例代码
JS
// send state value to controller
$('select[name="state"]').on('change', function () {
$.ajax({
url: '<url>',
method: 'POST',
data: {
state: $('select[name="state"]').val()
}
})
});
Controller
// For set session value
public funcion status()
{
$data = request()->validate([
'state' => 'required', // add some other validate
]);
session(['state' => $data['state']]);
}
查看
<select name ="state">
<option value="">Select State</option>
@foreach($state as $state_name )
<option value="{{ $state_name->state_id }}" selected="{{ session('state') == $state_name->state_id ? 'true' : 'false' }}">
{{ $state_name->state_name }}
</option>
@endforeach
</select>
关于mysql - 从下拉列表中选择后我应该如何维护状态 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57621121/