重新加载页面时如何显示表单中输入的数据。在选择2

Posted

技术标签:

【中文标题】重新加载页面时如何显示表单中输入的数据。在选择2【英文标题】:how to display the data entered in the form when reloading the page. In select2 【发布时间】:2021-09-06 20:33:18 【问题描述】:
<select type="text" name="user_name" class="form-control select2" style="width: 100%" >                                   
    <option></option>
    @foreach ($listUser as $items)            
    <option  value="$items->full_name">$items>full_name</option>                                 
    @endforeach   
</select>

<script type="text/javascript">
    $(function()       
        $('.select2').select2(
        placeholder : 'Chọn người dùng',
        allowClear: true,     
      );
    )
</script>
    如何在重新加载页面时显示表单中输入的数据。在select2中

【问题讨论】:

【参考方案1】:

首先您必须在控制器中将数据转换为正确的格式,在这里您可以看到正确的数据格式:

var data = [
    
        id: 1,
        full_name: 'John'
    ,
    
        id: 2,
        full_name: 'Jane'
    
];

您可以将正确格式的数组传递给视图,例如:

$users = \App\Models\User::all(); // eloquent collection

$users = $users->map(function ($user) 
    return ['id' => $user->id, 'full_name' => $user->full_name];
)->toArray();

它会产生这样的结果:

array:1 [▼
  0 => array:2 [▼
    "id" => 1
    "full_name" => "John"
  ]
  0 => array:2 [▼
    "id" => 2
    "full_name" => "Jane"
  ]
]

在您看来,您应该为 select2 准备数据,如下所示:

<select type="text" name="user_name" class="form-control select2" style="width: 100%" >         
</select>

<script type="text/javascript">
    var users = !! json_encode($users) !!;

    var data = $.map(users , function (value, key) 
        return id: key, full_name: value;
    );

    $('.select2').select2(
        data: data

        placeholder : 'Chọn người dùng',
        allowClear: true,     
    );
</script>

【讨论】:

以上是关于重新加载页面时如何显示表单中输入的数据。在选择2的主要内容,如果未能解决你的问题,请参考以下文章

如何在不重新加载页面的情况下获取数据表单数据库?

如何使表单数据在“从缓存重新加载”时持续存在

如何使用 Ajax 加载过滤后的数据,而无需在 laravel 中重新加载整个页面

如何使用 Ionic 2 重新加载页面

提交表单后如何使用模态重新加载页面

Codeigniter 3:不要在表单验证错误时重新加载表单