使用AJAX进行分页Laravel

时间:2017-10-19 19:54:53

标签: php jquery ajax pagination

大家 我尝试分页时,我的一些问题是我对AJAX的雄辩咨询的一些结果,一切正常,甚至是分页,我在数据库中有5条记录,然后我在视图中显示,并使用links方法分页,问题是,当我选择分页器的第二项时,更改记录,但重复布局,因此,用户在页面中,并选择分页器中的第二项,更改视图中的记录而不刷新页面,但同时,再次加载导航栏,页脚和所有thnigs布局;这是我的代码:

public function show_events(Request $request)
    {
        $events = Event::all();

        $ultimos = Event::orderBy('id', 'DESC')->paginate(3);
        if ($request->ajax) {
            return view('events.partials.last', compact('ultimos'));
        }

        return View('events.index', compact('events', 'ultimos')); -> This view has the layout and anothers things
    }

在那个视图中,我有一个带ID的div,并且包含了一段代码,其中包含foreach的所有记录,这就是div:

<div id="item-events" style="position: relative;">
          <h2 style="text-align: center; color: #009de2; margin-bottom: 5px;">Últimos eventos agregados</h2>
          @include('events.partials.last')
        </div>

这是我的AJAX:

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

  $(document).ready(function()
  {
      $(document).on('click', '.pagination a',function(event)
      {
          $('li').removeClass('active');
          $(this).parent('li').addClass('active');
          event.preventDefault();

          var myurl = $(this).attr('href');
          var page=$(this).attr('href').split('page=')[1];

          getEvent(page);
      });
  });

  function getEvent(page) {
        $.ajax(
        {
            url: '?page=' + page,
            type: "get",
            datatype: "html",
        })
        .done(function(data)
        {
            $("#item-events").empty().html(data);
            location.hash = page;
        })
        .fail(function(jqXHR, ajaxOptions, thrownError)
        {
              alert('Lo sentimos, ocurrió un error.');
        });
  }

有人知道发生了什么事吗? 感谢您的帮助,我真的很感激!

0 个答案:

没有答案