【发布时间】:2019-11-07 06:49:10
【问题描述】:
当我提交表单时,我应该设置哪些选项来获取选项的值?
我正在使用 Select2。我已经给出了我必须设置 select2 的代码、返回数据的控制器、呈现元素的 html 代码。
添加select2元素的HTML代码:
<div class="form-group row"><label class="col-lg-2 col-form-label">Keyword</label>
<div class="col-lg-10">
<select class="form-control w-50" name="keywords[]" id="keyword" multiple="multiple">
</select>
<span class="form-text m-b-none">One or multiple keywords</span>
</div>
</div>
数据源是一个 Ajax 调用:
$(document).ready(function() {
$('#keyword').select2({
tags: true,
tokenSeparators: [',', ' '],
placeholder: 'Select keyword',
ajax: {
url: 'https://rankypro.dev/app/json/keywords',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
控制器:
public function getKeywords(Request $request){
$search = $request->search;
if($search == ''){
$keywords = Term::orderby('name','asc')
->select('id','name')
->where('taxonomy','keyword')
->limit(5)
->get();
}else{
$keywords = Term::orderby('name','asc')->select('id','name')
->where('taxonomy','keyword')
->where('name', 'like', '%' .$search . '%')
->limit(5)
->get();
}
$results = array();
foreach($keywords as $keyword){
$results[] = array(
"id"=>$keyword->id,
"text"=>$keyword->name
);
}
echo json_encode($results);
exit();
}
我正在测试:
public function store(Request $request)
{
dd($request->keywords);
}
我得到以下信息:
array:2 [
0 => "Tools"
1 => "SEO"
]
我实际上需要关键字的 ID。请您提供一些提示,我该如何获得它。
【问题讨论】: