Я почти у цели. Я просто создал функцию поиска для своего веб-приложения, которая позволяет администратору выполнять поиск пользователей. После поиска объект 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 в фактический читаемый вывод?