Bonjour à tous ;-)

Voilà je dispose d'un code de pagination d'un tableau, je l'ai récupéré sur le net, c'est le seul qui fonction et qui convient pour mon besoin!

Problème: dans le cas où mon tableau est grand, j'ai trop de pages affichées, alors y aurait-il une possibilité pour améliorer mon code de pagination afin de lui rajouter un système (suivant, précédent...etc) merci.

voici le code en question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//PAGINATION-------------------------------------------------------------------------
var pages = paginate(6, list);
function paginate(n, list) {
    return divide(n, list).map(function (items, index) {
        var number = n * index;
 
        return {
            start: number + 1,
            end: number + items.length,
            items: items
        };
    });
}
 
var header = document.getElementById("pageHeader");
var items = document.getElementById("pageItems");
var buttons = document.getElementById("pageButtons");
 
appendChildren(buttons, pages.map(function (page, index) {
    var button = document.createElement("button");
    button.addEventListener("click", display);
    button.innerHTML = index + 1;
    return button;
 
    function display() {
        displayPage(page);
    }
}));
 
displayPage(pages[0]);
 
function displayPage(page) {
    header.innerHTML = "<h6>Résultats " + page.start + " à " + page.end + ":</h6>";
 
    items.start = page.start;
 
    items.innerHTML = "";
 
    appendChildren(items, page.items.map(function (item) {
        var li = document.createElement("li");
        li.innerHTML = item;
        return li;
    }));
}
 
function appendChildren(element, children) {
    children.forEach(function (child) {
        element.appendChild(child);
    });
}
 
function take(n, list) {
    return list.slice(0, n);
}
 
function drop(n, list) {
    return list.slice(n);
}
 
function concat(lists) {
    return Array.prototype.concat.apply(this, lists);
}
 
function divide(n, list) {
    if (list.length) {
        var head = take(n, list);
        var tail = drop(n, list);
        return concat.call([head], [divide(n, tail)]);
    } else return [];
}
//end pagination