【发布时间】:2018-05-20 09:04:10
【问题描述】:
我有一个上下文,其中有一个存储会议的会议表。会议桌有一列“名称”,还有一列“城市”。
我有一个输入类型文本,用户应该能够搜索会议名称,还可以搜索将在特定城市举行的会议。
为了更好地解释:用户在输入文本中输入“Ne”。所以它应该显示与会议名称相关的结果,但也应该显示城市名称。如果用户单击会议名称,他应该被重定向到会议详细信息页面。如果他在某个城市中单击,则在会议表的“城市”列中应显示具有单击城市作为值的会议。
您知道这是如何实现的吗?目前,只是在输入搜索中显示会议。
我为此上下文创建了一个 AutocompleteController:
class AutocompleteController extends Controller
{
public function search(Request $request){
$search = $request->term;
$conferences = Conference::where('name', 'LIKE', '%'.$search.'%')->get();
$data= [];
foreach ($conferences as $key => $value){
$data[] = ['id'=> $value->id, 'value' => $value->name . " " . $value->name];
}
return response($data);
}
}
上述方法的路径:
Route::get('/autocomplete-search', 'AutocompleteController@search');
jQuery:
$("#search").autocomplete({
source: "{{ URL::to('autocomplete-search') }}",
minLength: 2,
select:function(key, value)
{
console.log(value);
}
});
搜索输入:
<div class="col col-md-6">
<h4 class="text-white text-center font-weight-bold">Search</h4>
<form class="main-search">
<input type="text" id="search" class="autocomplete dropdown-toggle" placeholder="Conference, Citiy, Category">
</form>
</div>
会议桌:
conferences table
id | name | city | ...
1 | New conference 1 | Newcastle
2 | New conference 2 | Newcastle
3 | old conference 1 | Bristol
4 | old conference 2 | Glasgow
【问题讨论】:
-
您好,请问您具体需要哪些帮助?选择选项时显示分组选择或重定向是否有问题?
-
谢谢。用户的一部分写例如“Ne”并出现名称如“Ne”的会议工作正常。但我不明白如何添加用户写入时的部分,例如“Ne”,除了显示“Ne”之类的会议名称之外,已经使用问题中的代码,还显示属于会议的城市名称将“城市”列为“新”。
-
在提出这个问题时,您在 db 中的测试值是多少?
-
我用会议表更新问题。如果用户写“Ne”,则会出现前两条记录。但它没有出现“纽卡斯尔”这个城市。