Laravel implémente la pagination Ajax
Avec le développement d'Internet et les progrès de la technologie, les applications Web modernes ont des exigences de plus en plus élevées en matière d'expérience utilisateur. Dans de telles applications, la pagination est une fonctionnalité indispensable. Dans la méthode de pagination traditionnelle, la méthode traditionnelle d'actualisation de page est utilisée pour les sauts de page et le chargement des données, ce qui entraînera une réduction de l'expérience utilisateur. Surtout lorsque la quantité de données est énorme, les utilisateurs doivent attendre longtemps pour voir le. contenu qu'ils souhaitent. Par conséquent, une nouvelle méthode de pagination est largement utilisée : la pagination Ajax.
Le framework Laravel fournit un support puissant et nous permet d'implémenter facilement la pagination Ajax. Cet article explique comment utiliser Laravel pour implémenter la pagination Ajax.
Tout d'abord, nous devons configurer le routage pour prendre en charge la pagination Ajax. Ajoutez la route suivante dans le fichier web.php :
Route::get('/posts', 'PostController@index'); Route::get('/posts/fetch_data', 'PostController@fetch_data');
Ensuite, nous devons créer un contrôleur pour gérer la requête. Exécutez la commande suivante pour créer un PostController dans Laravel :
php artisan make:controller PostController
Ajoutez le code suivant dans le PostController :
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Post; class PostController extends Controller { public function index() { $posts = Post::paginate(5); return view('posts.index', compact('posts')); } public function fetch_data(Request $request) { if($request->ajax()) { $posts = Post::paginate(5); return view('posts.data', compact('posts'))->render(); } } }
Nous utilisons la méthode paginate pour obtenir les données de publication. Dans la méthode fetch_data, nous utilisons une vue lame appelée data pour restituer les données comme indiqué ci-dessous :
<div class="row"> @foreach($posts as $post) <div class="col-md-6"> <div class="card mb-3"> <img class="card-img-top" src="{{ $post->image }}" alt="{{ $post->title }}"> <div class="card-body"> <h5 class="card-title">{{ $post->title }}</h5> <p class="card-text">{{ $post->excerpt }}</p> <a href="{{ route('posts.show', $post) }}" class="btn btn-primary">Read More</a> </div> </div> </div> @endforeach </div>
Maintenant, nous devons créer une vue pour afficher les données de publication et activer la pagination Ajax. Ajoutez le contenu suivant dans le fichier resources/views/posts/index.blade.php :
@extends('layouts.app') @section('content') <div class="container"> <div id="posts"> @include('posts.data') </div> <div class="d-flex justify-content-center"> {{ $posts->links() }} </div> </div> @endsection @section('scripts') <script> $(document).ready(function() { $(document).on('click', '.pagination a', function(e) { e.preventDefault(); var page = $(this).attr('href').split('page=')[1]; fetch_data(page); }); }); function fetch_data(page) { $.ajax({ url:"/posts/fetch_data?page="+page, success:function(data) { $('#posts').html(data); } }); } </script> @endsection
Ici, nous avons utilisé la directive @pagination de blade pour afficher le lien du numéro de page tout en incluant les données de data.blade.php. Dans la directive @scripts, nous utilisons jQuery pour gérer l'événement click et restituer les données.
Enfin, nous devons ajouter quelques styles pour rendre la page plus jolie. Ajoutez le code suivant au fichier public/css/app.css :
.card { border: none; } .card-text { color: #555; } .card-img-top { height: 220px; object-fit: cover; }
Maintenant, notre application Laravel est prête à utiliser la pagination Ajax ! Lorsque l'utilisateur clique sur le lien du numéro de page, la page chargera les données sans actualiser. Cela peut grandement améliorer l’expérience utilisateur, surtout lorsque la quantité de données est particulièrement importante.
Résumé
Cet article présente comment utiliser le framework Laravel pour implémenter la pagination Ajax. En utilisant la pagination Ajax, vous pouvez grandement améliorer l’expérience utilisateur dans votre application web, notamment lorsque le volume de données est important. Grâce au framework Laravel, nous pouvons facilement implémenter cette fonctionnalité et optimiser notre application. J'espère que cet article vous aidera !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!