Загрузка страницы на ajax разбиение на страницы в Laravel - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь реализовать ajax разбиение на страницы. но ajax нумерация страниц отлично загружается, когда я нажимаю кнопку второй страницы. но когда я нажимаю на кнопку третьей страницы, она перезагружает всю страницу.

Вот функция поиска

public function search(Request $request){
$query = $request->get('query');
if($request->ajax()){   
            $data = Constant_model::get_icons('fontawesomeicons',"id",'DESC',10,$query);
                    }
    return view('icons_table_data', compact('data'))->render();


    }

}

, а код javascript равен

function load_data(query,page) {
  $.ajax({
    url: "/icons/search?page="+page,
    method: "GET",
    data: {
      search: query
    },
    error: function (error) {

        console.log(error);

    },
    success: function(data) {


        $('#tabledata').empty();
        $('#tabledata').append(data);
    }
  });
}


$(document).ready(function() {

$('#search').keyup(function() {
  var search = $(this).val();
  var page = $('#hidden_page').val();
  if (search != '') {

   load_data(search,page);

  } else {

  }
});
});

 $( ".pagination a" ).bind( "click", function(e) {
  event.preventDefault();
    var page = $(this).attr('href').split('page=')[1];
    $('#hidden_page').val(page);

    var query = $('#serach').val();

    $('li').removeClass('active');
    $(this).parent().addClass('active');
    load_data(query,page);

});

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Я думаю, что вы включили ссылку на нумерацию страниц в представлении 'icons_table_data', верно? Если это так, вы должны написать событие listen следующим образом: $('body').on('click','.pagination a',function(e){...}), потому что оно не будет читать событие на новом созданном элементе, если вы напишите в своем коде. Кроме того, измените event.preventDefault(); на e.preventDefault();, потому что вы передаете имя переменной e

0 голосов
/ 27 января 2020

Вы используете e в качестве аргументов в function(e), а не function(event).

Убедитесь, что используете то же имя. Таким образом, вы можете изменить его на:

$( ".pagination a" ).bind( "click", function(event) {
    event.preventDefault();
    // code...
});

или

$( ".pagination a" ).bind( "click", function(e) {
    e.preventDefault();
    // code...
});
...