leshikgo
@leshikgo

Как улучшить код аякс загрузки страниц?

Здравствуйте. На сайте есть теги. По клике по тегу сделал аякс подгрузку элементов. Сделал я это так:

public function showCategory(Request $request, $id)
    {
        $recipes = Tag::find($id)->recipes()->where('public', '=', 1)->get();
        $tags = Tag::with('recipes')->get();
        if ($request->ajax()) {
            return view('site.recipe_load', ['recipes' => $recipes])->render();
        }
    }


$(function() {
    $('body').on('click', '.left-menu a', function(e) {
        e.preventDefault();

        $('#load a').css('color', '#dfecf6');
        $('.preloader-wrapper').addClass('active');

        var url = $(this).attr('href');
        getRecipes(url);
        window.history.pushState("", "", url);
    });

    function getRecipes(url) {
        $.ajax({
            url :  url
        }).done(function (data) {
            $('.recipes').html(data).fadeIn();
            console.log(data);
        }).fail(function () {
            alert('Recipes could not be loaded.');
        });
    }
});


Route::get('tag/{id}','FrontController@showCategory');


<a href="{{action('FrontController@showCategory',['id'=>$tag->id])}}">#{{$tag->name}}</a>


Появилась проблемка, при клике по тегу генерируется ссылка вида mysite/tag/1 - элементы выводятся, но после обновления страницы адреса mysite/tag/1, страница становится пустой, так как мы получали только элементы. Как можно улучшить код и решить данную проблему ?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
public function showCategory(Request $request, $id)
    {
        $recipes = Tag::find($id)->recipes()->where('public', '=', 1)->get();
        $tags = Tag::with('recipes')->get();
        if ($request->ajax()) {
            return view('site.recipe_load', ['recipes' => $recipes])->render();
        }
        return view('site.recipe_load', ['recipes' => $recipes]);
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы