Maison > cadre php > Laravel > le corps du texte

Comment implémenter la pagination ajax dans Laravel

PHPz
Libérer: 2023-04-23 09:57:34
original
627 Les gens l'ont consulté

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.

  1. Configurer le routage

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');
Copier après la connexion
  1. Créer un contrôleur

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
Copier après la connexion

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(&#39;posts.index&#39;, compact(&#39;posts&#39;));
    }

    public function fetch_data(Request $request)
    {
        if($request->ajax()) {
            $posts = Post::paginate(5);
            return view('posts.data', compact('posts'))->render();
        }
    }

}
Copier après la connexion

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(&#39;posts.show&#39;, $post) }}" class="btn btn-primary">Read More</a>
                </div>
            </div>
        </div>
    @endforeach
</div>
Copier après la connexion
  1. Create View

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
Copier après la connexion

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.

  1. Créer des styles

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!