Знаете ли вы, почему поиск автозаполнения не работает должным образом? - PullRequest
0 голосов
/ 16 мая 2018

У меня есть контекст, где есть таблица конференций, в которой хранятся конференции.На столе конференции есть колонка «город».

У меня есть приведенный ниже код с использованием 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», например «Ньюкасл».Вы знаете, как этого добиться?

1 Ответ

0 голосов
/ 16 мая 2018

Первая проблема довольно легко решается:

// Change this line
$data[] = ['id'=> $value->id, 'value' => $value->name . " " . $value->name];

// into this
$data[] = ['id'=> $value->id, 'value' => $value->name];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...