У меня есть контекст, где есть таблица конференций, в которой хранятся конференции.На столе конференции есть колонка «город».
У меня есть приведенный ниже код с использованием jquery autocomplete и laravel, так что пользователь может напечатать, например, 2 буквы, такие как «co», во входном тексте, и он будет отображаться во входном тексте в результатах конференций с именем, подобным «co».", и если есть города, которые также имеют название, подобное" со ", должно появиться.Но есть две проблемы:
- сначала, когда пользователь пишет, например, «co» на входе, и существует конференция с именем «conf», вместо этого она появляется в автозаполнении ввода «conf conf»просто "conf".
- и для городов не работает, если есть город "Ньюкасл", и пользователь пишет "Ne", в тексте ввода ничего не появляется.
Знаете ли вы, почему?
class AutocompleteController extends Controller
{
public function search(Request $request){
$search = $request->term;
$conferences = Conference::where('name', 'LIKE', '%'.$search.'%')
->orWhere('city', '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>
Для второго вопроса, когда пользователь вводит «Ne», появляется заголовок конференции, для которой в качестве «Ньюкасл» указано «например».Но должно появиться название города, в котором есть «Ne», например «Ньюкасл».Вы знаете, как этого добиться?