AJAX Paginierung mit Laravel

Habe ich diese Sichtweise genannt posts.blade.php die wird enthalten in home.blade.php:

<div id="posts">
    @foreach ($posts as $post)
        <div class="list-item clearfix">
            <div class="content">
                <img src="{{ URL::to($post->thumbnail) }}" alt="" />
                <h1>{{{ $post->title }}}</h1>
            </div>
            <div class="score">{{ $post->rating }}</div>
        </div>
    @endforeach
    <div id="pagination">{{{ $posts->links() }}}</div>
</div>

Wenn ein Nutzer nach bestimmten posts, die Steuerung ist postSearch() - Funktion liefert eine JSON-Antwort:

function postSearch() 
{
    $posts = $posts->select(...)->where(...)->orderBy(...)->paginate(5); //Search posts

    return Response::json(View::make('includes.posts', ['posts' => $posts])->render());
}

Und jQuery fügt die HTML-Datei auf der #posts div:

$('#search').submit(function(e) {
    e.preventDefault();
    var form = $(this);

    $.post(form.attr('action'), form.serialize(), function(data) {
        $('#posts').html(data);
    });
});

Dieser funktioniert perfekt. Aber jetzt wenn ich auf eine Paginierung link, die Seite wird neu geladen und meine Suchergebnisse sind Weg (logisch). Wie kann ich den Seitenumbruch solche posts? Ich habe gelesen,diese, diese und diese Artikel, aber ich verstehe nicht, wie es zu implementieren.

Bearbeiten

Dies ist mein jQuery für die Paginierung so weit:

$('#posts').on('click', '.pagination a', function(e) {
    e.preventDefault();
    var url = $(this).attr('href'),
        page = url.split('page=')[1],
        data = $('#search').serializeArray();

    data.push({page: page}); //Add page variable to post data
    console.log(data);

    $.post($('#search').attr('action'), data, function(data) {
        $('#posts').html(data['posts']);
    });
});

Dies ist Daten senden, wenn ich auf eine Paginierung link (Seite 2):

AJAX Paginierung mit Laravel

Leider passiert nichts, die posts von Seite 1 weiterhin zeigen.

InformationsquelleAutor JasonK | 2014-11-05
Schreibe einen Kommentar