Ответ AJAX только возвращает объект, а не фактические данные - PullRequest
1 голос
/ 04 апреля 2019

Я почти у цели. Я просто создал функцию поиска для своего веб-приложения, которая позволяет администратору выполнять поиск пользователей. После поиска объект AJAX возвращается так, как должен. Однако при попытке вывести его в тело или строку таблицы, кажется, ничего не видно, кроме элементов таблицы. Я уверен, что упускаю одну маленькую вещь?

Я попытался получить доступ к данным с помощью «data.name», но потом ничего не произошло, но если я оставлю их как «data», они переместятся в пустую таблицу без информации. Я не уверен, должен ли он отображать информацию о запросах в таблице или я должен создать дополнительные строки для каждого возвращаемого элемента. Итак, я посмотрел на:

Поиск с помощью ajax по клику и показ результатов на той же странице laravel

как я использую Laravel. В любом случае я выложу свой код ниже.

Контроллер

public function searchUser(){
        $term = request()->input('user');
        $search = User::where('name', 'LIKE', '%' . $term . '%')->paginate(10);
        return response()->json($search);
    }

Просмотр & JS

<form class="form-inline" id="user-search">
                    @csrf
                    <input class="form-control mr-sm-2" type="search" placeholder="Search by name or username"
                           name='search-user' id="search" style="width: 16rem;">
                    <button class="btn" type="button" id="find-user"><i class="fa fa-search"></i></button>
                </form>
                <script type="text/javascript">
                    jQuery(document).ready(function () {
                        $('#find-user').on('click', function (e) {
                            e.preventDefault();
                            $.ajaxSetup({
                                headers: {
                                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                                }
                            });
                            $.ajax({
                                url: "{{route('admin.search')}}",
                                type: 'GET',
                                data: {user: jQuery('#search').val()},
                                success: function (data) {
                                    console.log(data);
                                   $('tbody').html(data);
                                }
                            });
                        })
                    });
                </script>

Таблица для отображения результатов

<table class="table table-striped table-hover" id="main-table">
                    <thead>

                    <tr>
                        <th scope="col">Username</th>
                        <th scope="col">Name</th>
                        <th scope="col">Email</th>
                        <th scope="col">Delete</th>
                    </tr>
                    </thead>
                    <tbody>
                    @foreach($users as $u)
                    <tr class="test">
                        <td>{{$u->username}}</td>
                        <td>{{$u->name}}</td>
                        <td>{{$u->email}}</td>
                     </tbody>
</table>

Также он сообщает об обнаруженном объекте с помощью console.log, так что я знаю, что мой контроллер работает нормально, он просто пытается преобразовать этот JSON в фактический читаемый вывод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...