AJAX响应仅反馈对象,而不反馈实际数据

时间:2019-04-04 16:07:14

标签: jquery ajax laravel response

我快到了。我只是为Web应用程序创建了一个搜索功能,该功能允许管理员搜索用户。搜索后,AJAX对象将按原样返回。但是,当尝试将其输出到我的表主体或行中时,除表元素外似乎什么都没有显示。我确定我错过了一件小事吗?

我尝试使用“ data.name”访问数据,但是什么也没有发生,但是如果我将其保留为“ data”,那么它将移动到没有信息的空白表中。我不确定它是否应该在表中显示请求信息,还是要为返回的每个元素创建其他行。所以我看了:

Search with ajax on click and show results in same page 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转换为实际可读的输出?

0 个答案:

没有答案