0

我收到此错误:

GET http://auto.test/autocomplete?query= 500 (Internal Server Error)

我的路线(web.php):

Route::get('search', 'SearchController@index')->name('search');
Route::get('autocomplete', 'SearchController@autocomplete')->name('autocomplete');

我的搜索控制器:

use App\Item;
use Input;
use Responce;

    public function index()
    {
        return view('search');
    }

    public function autocomplete(Request $request)
    {
        $data = Item::select("name")->where("name", "LIKE", "%{$request->input('name')}%")->get();

        return responce()->json($data);
    }

在我的主视图中(search.blade.php):

<body>
    <div class="container">
        <h1>Search Name by Auto Complete</h1>
        <input type="text" class="typeahead form-control" name="" id="">
    </div>

    <script type="text/javascript">
        var path = "{{ route('autocomplete') }}";

        $("input.typeahead").typeahead({
            source:function(query, process) {
                return $.get(path, {query:name}, function(data) {
                    return process(data);
                })
            }
        });
    </script>
</body>

包括最新的 JQuery 文件和来自 cloudflare 的 bootstrap3-typeahead.js。难道我做错了什么。非常感谢任何帮助或建议。

4

2 回答 2

0

我今天开始使用这个功能。而且我还在学习。所以...我认为您忘记了输入的名称和ID。

于 2019-08-05T13:56:36.243 回答
0

您错误地传递了 ajax 请求参数。但是在您的代码中,您希望收到输入参数“名称”,因此可能如下

<script type="text/javascript">
        var path = "{{ route('autocomplete') }}";

        $("input.typeahead").typeahead({
            source:function(query, process) {
                return $.get(path, {name:query}, function(data) {
                    return process(data);
                })
            }
        });
    </script>
于 2019-01-15T19:57:35.350 回答