jquery - 如何在 laravel 中使用 jquery 将数据库值附加到 select2
问题描述
我使用多选下拉菜单在数据库中插入了 select2 值,但是当我编辑模式时,它在所选值中没有返回值。我在 Laravel 中使用 jquery ajax。
形式
<form id="userForm" name="userForm" class="form-horizontal" data-parsley-validate="">
<input type="hidden" name="user_id" id="user_id">
<div class="form-group">
<label for="email" class="col-sm-2 control-label">Project</label>
<div class="col-sm-12">
<select id="project_id" name="project_id[]" class="selectpicker form-control" multiple data-live-search="true">
@foreach (projects() as $project)
<option @if (old('project_id') == $project->id) selected @endif value="{{ $project->id }}">{{ $project->name }}</option>
@endforeach
</select>
<span class="text-danger error_message" id="projectIdError"></span>
</div>
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary" id="saveBtn" value="create">Add User
</button>
</div>
</form>
编辑jquery代码
$('body').on('click', '.editUser', function () {
var user_id = $(this).data('id');
$('#saveBtn').html('Update User');
$.get("{{ url('admin/user') }}" +'/' + user_id +'/edit' , function (data) {
$('#modelHeading').html("Edit User");
$('#saveBtn').val("edit-user");
$('#ajaxModel').modal('show');
$('#user_id').val(data.id);
$('#name').val(data.name);
$('#email').val(data.email);
$('#project_id').val(data.project_id);
})
});
控制器
public function edit($id)
{
return $user = User::with('projects')->findOrFail($id);
}
预期输出:
解决方案
通过此代码修复它
var projects = data.projects;
let optArr = [];
for (var i = 0; i < projects.length; i++) {
optArr.push(projects[i].id);
}
$('.selectpicker').selectpicker('val', optArr);
$('.selectpicker').selectpicker('refresh')
推荐阅读
- html - 如何根据方向变化在css中左右切换类浮动?
- java - Java8流如何用一些其他字符列表替换特定的字符列表
- java - 如何在 RecyclerView.Adapter 中使用 onActivityResult
- c++ - 指向动态内存结构中的变量的问题
- excel - 运行表 VBA
- python - 在 Python 中验证字符串值
- c - MPI_Allgather 与 2D 数组
- javascript - 查找字符串中存在的所有给定字符。字符可以出现在字符串中的任何位置
- python-3.x - 如何计算csv文件行中句子的代词、名词和动词
- android-layout - Android:布局重力