php 使用JQuery的Laravel AJAX分页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 使用JQuery的Laravel AJAX分页相关的知识,希望对你有一定的参考价值。

<?php

class BlogController extends Controller
{
    /**
     * Posts
     *
     * @return void
     */
    public function showPosts()
    {
        $posts = Post::paginate(5);

        if (Request::ajax()) {
            return Response::json(View::make('posts', array('posts' => $posts))->render());
        }

        return View::make('blog', array('posts' => $posts));
    }
}
<?php

class Post extends Eloquent
{
    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'posts';

    /**
     * Define guarded columns
     *
     * @var array
     */
    protected $guarded = array('id');
}
<!doctype html>
<html lang="en">
<head>

    <meta charset="utf-8">

    <title>Laravel AJAX Pagination with JQuery</title>

</head>
<body>

    <h1>Posts</h1>

    <div class="posts">
        @include('posts')
    </div>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script>

    $(window).on('hashchange', function() {
        if (window.location.hash) {
            var page = window.location.hash.replace('#', '');
            if (page == Number.NaN || page <= 0) {
                return false;
            } else {
                getPosts(page);
            }
        }
    });

    $(document).ready(function() {
        $(document).on('click', '.pagination a', function (e) {
            getPosts($(this).attr('href').split('page=')[1]);
            e.preventDefault();
        });
    });

    function getPosts(page) {
        $.ajax({
            url : '?page=' + page,
            dataType: 'json',
        }).done(function (data) {
            $('.posts').html(data);
            location.hash = page;
        }).fail(function () {
            alert('Posts could not be loaded.');
        });
    }

    </script>

</body>
</html>
@foreach ($posts as $post)

    <article>
        <h2>{{ $post->title }}</h2>
        {{ $post->summary }}
    </article>

@endforeach

{{ $posts->links() }}

以上是关于php 使用JQuery的Laravel AJAX分页的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 通过 jquery ajax 将表单值插入数据库?

无法通过 jquery Ajax 在 laravel 5 中发布

Laravel - 使用ajax

Jquery:使用 laravel 的跨域 ajax 'POST'

如何把jquery放在laravel控制器上?

laravel 4: URL::route vs jquery