Я настраивал функцию автозаполнения для своего проекта, и я думаю, что я хорошо понял логику, но данные не отображаются на входе.
Контроллер:
Public function autoComplete(Request $request) {
$term = $request->get('term','');
$queries=DB::table('patients')
->where('name','LIKE','%'.$term.'%')
->select('patients.id','patients.name')
->get();
$results=array();
foreach ($queries as $query)
{
$results[] = ['id' => $query->id, 'value' => $query->name];
}
if(count($results))
return response()->json($results);
else
return ['id'=>'','value'=>'No Result Found'];
}
Маршрут:
Route::get('autocomplete',['as'=>'autocomplete','uses'=>'TestController@autoComplete']);
Лезвие:
<input type="text" id="test" name="test">
Jquery & ajax внутри этого клинка:
$(document).ready(function() {
src = "{{ route('autocomplete') }}";
$( "#test" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: src,
dataType: "json",
data: {
term : request.term
},
success: function(data) {
response(data);
}
});
},
minLength: 2,
});
});
Потратил два дня на поиски проблемы, которая может быть вызвана отсутствием каких-либо ошибок, просто нет отображаемых данных при автозаполнении ввода,
Может ли это быть конфликты сценариев или JQuery не реализованы хорошо, я не знаю, чего здесь не хватает.
Ответ JSON в порядке, но отправка данных в JQuery с AJAX, я думаю, это не работает.
p.s для передней части im с использованием библиотеки materializecss.
Заранее спасибо