通过jquery将数据库中的列填充到select2中
Posted
技术标签:
【中文标题】通过jquery将数据库中的列填充到select2中【英文标题】:Populating a column from database into select2 via jquery 【发布时间】:2019-12-14 08:59:40 【问题描述】:我正在尝试将标签从 DB 填充到 select2 字段中。数据以检查模式返回,但不填充到 select2 字段中。
我有一个带有 tag_id 和 tag_name 字段的tags
表。以下是控制器中获取并返回标签的代码:
public function getTag()
$tag_list = DB::table('tags')
->select('t_name')
->get();
return response()->json(['tag_n' => $tag_list]);
以下是带回标签的Jquery:
<script>
$(document).ready(function()
$("#catBox").select2(
placeholder:"Select and search",
ajax:
url: urlTag ,
type: 'GET' ,
dataType: 'json',
delay: 250,
data:function(params)
return
tag_n:params.term
;
,
processResults:function(response)
return
results: response
;
,
cache:true
);
);
</script>
路由和路由url:
<script>
var urlTag = ' route('getTag') ';
</script>
Route::get('/gettag', [
'uses' => 'PostController@getTag',
'as' => 'getTag'
]);
在检查模式下返回数据,但不填充到 select2 字段中。
以下是Select标签:
<select class="js-example-basic-multiple" multiple="multiple" name="catBox[]" id="catBox" style ="width:250px">
</select>
【问题讨论】:
我认为它的数据解析问题。你试过了吗? 【参考方案1】:像这样从服务器返回数据:
[t_name : "php",t_name : "TEST",t_name : "DEMO"] insted of pass with `a_tag : [t_name : "PHP",t_name : "TEST",t_name : "DEMO"]`
$("#catBox").select2(
tags: true,
tokenSeparators: [",", " "],
createSearchChoice: function(term, data)
if ($(data).filter(function()
return this.text.localeCompare(term) === 0;
).length === 0)
return
t_name: term
;
,
multiple: true,
ajax:
url: urlTag ,
dataType: "json",
data: function(term, page)
return
q: term
;
,
results: function(data, page)
return
results: data
;
);
【讨论】:
类似***.com/questions/14229768/… 我正在尝试按照您上面提到的方式从服务器返回数据。我应该在 return 语句中更改什么才能像这样返回它? 在尝试上面的 Jquery 代码时,我收到(urlTag 未定义) urlTag 是保存你的 api url 的 var 我修复了 URL 以及返回的格式,但 select2 字段中仍然没有显示任何内容。我还在主要问题中添加了 select2 html。以上是关于通过jquery将数据库中的列填充到select2中的主要内容,如果未能解决你的问题,请参考以下文章