# 路由配置
Route::post('/search', [SearchController::class, 'search'])->name('search');
# 控制器代码
public function search(Request $request)
{
$query = $request->get('query');
$results = DB::table('users')->where('name', 'like', '%' . $query . '%')->get();
return response()->json($results);
}
# Ajax代码
$(document).ready(function() {
$('#search-form').on('submit', function(e) {
e.preventDefault();
var query = $('#search-box').val();
$.ajax({
type: 'POST',
url: '{{ route('search') }}',
data: { query: query },
success: function(data) {
$('#results').html('');
$.each(data, function(i, item) {
$('#results').append('' + item.name + ' ');
});
}
});
});
});
在上面的代码示例中,我们首先定义了一个名为“搜索”的路由,然后在控制器中获取用户输入的搜索查询,并使用查询构建器返回符合条件的结果。最后,我们使用response()->json()方法将结果转换为JSON格式并发送回Ajax请求。在Ajax代码中,我们监听了search-form表单的submit事件,并阻止了默认行为。然后,我们获取用户输入的搜索查询,并将其作为数据发送到搜索路由。如果成功,我们遍历返回的数据,并将每个结果追加到#results元素中。