Jquery 如何在laravel中使用AJAX数据时设置Select2的选定值?
Controller@UpdateJquery 如何在laravel中使用AJAX数据时设置Select2的选定值?,jquery,ajax,laravel,tags,select2,Jquery,Ajax,Laravel,Tags,Select2,Controller@Update //Update $course = Course::findOrFail($id); $course->name = Input::get('name'); $course->code = Input::get('code'); $course->credits = Input::get('credits'); $course->description = Input::get('description');
//Update
$course = Course::findOrFail($id);
$course->name = Input::get('name');
$course->code = Input::get('code');
$course->credits = Input::get('credits');
$course->description = Input::get('description');
$course->tags()->sync(Input::get('tags')); // Use of sync method
//return [$course];
$course->save();
//Redirect
Session::flash('message', 'Successfully edited the course : '.$course->name);
return $this->show($course->code);
<pre>
<div class="form-group">
{{Form::label('tags', 'Tag')}}
{{Form::select('tags[]',[],null,array('multiple'=>'multiple','name'=>'tags[]','id'=>'tag_list','class'=>'form-control'))}}
</div>
</pre>
HTML
作为一个毕业生项目,我正在研究课程管理系统,简言之,课程和标签之间存在多对多关系,我想使用Select2包的同步方法,以方便的方式从课程中附加和取消附加标签,但我找不到在使用ajax数据时设置Select2的选定值的方法。如果有人能提供一个简单的指南来指导如何做到这一点,我将不胜感激:D.在类似的情况下,我只需要避免使用表单生成器
function initSelect2(control, key, value){
var data = {
id: key,
text: value
};
var initOption = new Option(data.text, data.id, false, false);
control.append(initOption);
control.val(value).trigger('change');
}
@foreach($course->tags as$tag)
{{$tag->name}
@endforeach
在类似的情况下,我不得不避免使用表单生成器
function initSelect2(control, key, value){
var data = {
id: key,
text: value
};
var initOption = new Option(data.text, data.id, false, false);
control.append(initOption);
control.val(value).trigger('change');
}
@foreach($course->tags as$tag)
{{$tag->name}
@endforeach
由于这是一个Ajax请求,因此控件中没有填充数据。
在Select2 v.4>中,如果您不想遵循官方文档的建议,可以使用类似于此JS函数的功能来设置初始值
initSelect2( $('#tags'), '{{ $tag->id }}', '{{ $tag->name }}');
然后打电话
要设置默认值/初始值,因为这是一个Ajax请求,所以控件中没有填充数据。
initSelect2( $('#tags'), '{{ $tag->id }}', '{{ $tag->name }}');
在Select2 v.4>中,如果您不想遵循官方文档的建议,可以使用类似于此JS函数的功能来设置初始值
initSelect2( $('#tags'), '{{ $tag->id }}', '{{ $tag->name }}');
然后打电话
要设置默认值/初始值问题在于,当您将ajax数据与Select2一起使用时,它会删除所有已写入的选项,并使用ajax请求的json响应重新写入这些选项。我也想使用这种方法,但现在的问题是templateResult和templateSelection返回undefined:undefined您知道吗关于如何编写选项标签,以便Select2可以提取所需的数据?我以前没有使用自定义模板。但是根据select2文档,它应该是相同的。使用预先选择的选项检查ajax示例,不要忘记检查模板的源代码。我还将尝试稍后对其进行测试问题是,当您将ajax数据与Select2一起使用时,它会删除所有已写入的选项,并使用ajax请求的json响应重新写入这些选项。我也希望使用这种方法,但现在的问题是templateResult和templateSelection返回undefined:undefined您对这些选项有何看法如何编写选项标记以便Select2可以提取所需的数据?我以前没有使用自定义模板。但是根据select2文档,它应该是相同的。使用预先选择的选项检查ajax示例,不要忘记检查模板的源代码。稍后我还会尝试测试它
initSelect2( $('#tags'), '{{ $tag->id }}', '{{ $tag->name }}');