Я пытался создать базовый проект для отслеживания движения акций. Здесь мне нужно поле для ввода, где я могу ввести текст, и элементы, соответствующие тексту, должны отображаться в раскрывающемся списке и должны быть доступны для выбора. Я имел в виду ссылку ниже для того же:
https://www.itsolutionstuff.com/post/laravel-57-autocomplete-search-from-database-using-typeahead-jsexample.html
Пожалуйста, найдите мой код, как показано ниже:
create.blade.php
@extends('layouts.app')
@section('title', 'New Transaction')
@section('content')
<form action="/transactions" method="POST">
<div class="row">
<label>Item Name</label>
<input class="typeahead form-control" type="text">
<label>Quantity</label>
<input type="text" name="quantity[]" value="" placeholder="Quantity">
{{ $errors->first('quantity')}}
</div>
<button type="submit" class="btn btn-primary">Complete Order</button>
@csrf
</form>
<script type="text/javascript">
var path = "{{ route ('autocomplete') }}";
$('input.typeahead').typeahead({
source: function (query, process) {
//alert("Sds");
return $.get(path, { query: query }, function (data) {
return process(data);
});
}
});
</script>
@endsection
TransactionController.php Функция автозаполнения:
public function autocomplete(Request $request)
{
$data = Item::select("item_name")
->where("item_name", "LIKE", "%{$request->input('query')}%")
->get();
return response()->json($data);
}
Web.php
Route::resource('items', 'ItemController');
Route::resource('units', 'UnitController');
Route::resource('transactions', 'TransactionController');
Route::get('transactions', 'TransactionController@autocomplete')->name('autocomplete');
Я все еще не понимаю, где я ошибся.