mysql - 从下拉列表中选择后我应该如何维护状态 session ?

标签 mysql laravel

我正在创建网站,在从索引页面选择状态后,如果我从一个页面移动到另一页面,所有页面都将相同。我正在下拉列表中获取数据并将其保留在网站的右上角。但是当我选择状态并移至第二页时,我很困惑,它再次更改,它要求选择状态。请告诉我如何在 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/

相关文章:

php - 使用 CakePHP 批量导入 CSV 文件

laravel - 似乎由于版本不兼容而无法安装 laravel/sail

php - Laravel ORM 从自引用表中获取 N 级层次结构 JSON

Mysql InnoDB 锁定原子读

php - 在 php 中使用具有多个左连接的 WHERE 子句

PHP/MYSQL - 通过 as php 变量进行 mysql 查询相关的语法错误

laravel - 如何在 Laravel 中使用护照检索访问 token ?

php - Laravel Cartalyst Sentinel - 向用户表添加用户名列(什么是正确的方法)

mysql - Laravel 从更新查询中获取记录 ID

php - 对两种不同类型的客户端使用相同的 logout.php 页面