Laravel JQuery автозаполнения выборки данных из JSON не отображаются в представлении - PullRequest
0 голосов
/ 09 января 2019

Я настраивал функцию автозаполнения для своего проекта, и я думаю, что я хорошо понял логику, но данные не отображаются на входе.

Контроллер:

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.

Заранее спасибо

1 Ответ

0 голосов
/ 09 января 2019

Наконец-то нашли решение: Мне не хватало стилей jqueryUI:

   <script src="https://code.jquery.com/ui/1.12.0-beta.1/jquery-ui.js"></script>
   <link rel="stylesheet" 
   href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" 
   type="text/css">

добавил их внутрь клинка и теперь работает как шарм! Спасибо:)

...