Bonjour c'est encore moi ^^
Je me lance dans une pagination en Ajax.
Le but est d'afficher dans un tableau les éléments (10) d'un fichier .xml et d'avoir dans chaque page l'affichage d'un .xml différent.
En page 1 on aura les 10 éléments de villes1_1.xml, en page 2 on aura les 10 éléments de villes1_2.xml, etc..
J'ai donc des boutons suivant, precedent, first et last et des boutons qui pointent vers la page1,2,3 etc
Tout est ok pour les boutons precedent suivant last et first, ainsi que les raccourcis vers les page 1, 2, 3etc mais si je clic sur page 2 par exemples, je tombe bien sur la deuxième page mais les boutons precedent suivant last et first ne marcheront plus.
J'ai bien essayé de remettre ces même bouton dans ma fonction "affiche_page", sans succès..
Ma page est consultable ici : (essayez avec le champ L1) :
http://jon4221.free.fr/pagination2/jquery.html
Voici mon .js :
Merci pour votre aide et je précise que je me suis mit au Javascript depuis 1 mois
[/i][/i]
Modifié par lele91 (11 May 2012 - 10:24)
Je me lance dans une pagination en Ajax.
Le but est d'afficher dans un tableau les éléments (10) d'un fichier .xml et d'avoir dans chaque page l'affichage d'un .xml différent.
En page 1 on aura les 10 éléments de villes1_1.xml, en page 2 on aura les 10 éléments de villes1_2.xml, etc..
J'ai donc des boutons suivant, precedent, first et last et des boutons qui pointent vers la page1,2,3 etc
Tout est ok pour les boutons precedent suivant last et first, ainsi que les raccourcis vers les page 1, 2, 3etc mais si je clic sur page 2 par exemples, je tombe bien sur la deuxième page mais les boutons precedent suivant last et first ne marcheront plus.
J'ai bien essayé de remettre ces même bouton dans ma fonction "affiche_page", sans succès..
Ma page est consultable ici : (essayez avec le champ L1) :
http://jon4221.free.fr/pagination2/jquery.html
Voici mon .js :
jQuery(document).ready(function() {
var xmlDoc;
var nombrePage;
var numPage = 1; //quand on change de championnat on retombe sur la page 1
$('#pagination').css({'visibility' : 'hidden'});
$('#titre_club').html('<h2 style="margin-bottom:12px;margin-top:0px;">Championnat :</h2>');
$('#region').change(function() {
numPage = 1;
indice_region = $(this).attr('selectedIndex');
// L'événement .change est envoyé à l'élément region lorsque sa valeur est modifiée. Quand on change de régions :
$('tr').remove(); //Pour que le tableau efface les tr précedemments afficher, sinon fait que des ajouts.
$('#suivant, #precedent, #first, #last').css({'visibility' : 'hidden'});
$('#div_boutons').empty(); //pour vider la pagination
if ($(this).attr('selectedIndex') != 0) { //Si la position est différent de 0 (si on a pas séléctionné le championnat = 0) faire :
$.ajax({
type: 'GET',
/*beforeSend : function() {
$('#loader').fadeIn(); //affiche le gif qui charge
},*/
url: 'xml/villes'+indice_region+'_1.xml',
dataType: 'xml',
data : 'region='+$(this).val(),
success: function(document, status) {
xmlDoc = document;
var imax = 111;
$(xmlDoc).find('ville').each(function() { //cherche tous les <ville> du xml
imax = imax+1; //à la fin du each, xmax = nombre total de ville
});
nombrePage = (Math.ceil(imax/10)); //permet de savoir le nombre total de pages
//ajout tableau de droite
var titre = $('#region').val(); //crée variable titre qui est égal au championnat selectionné
$('#titre_club').html('<h2 style="margin-bottom:12px;margin-top:0px;">'+titre+'</h2>'); //affichage dans div "titre_club"
affiche_page(numPage,nombrePage);
}
});
}
else { // SI on est sur l'indice_region 0
$('#titre_club').html('<h2 style="margin-bottom:12px;margin-top:0px;">Championnat :</h2>');
}
});
//DEBUT CLICK SUIVANT
$("#suivant").click(function() {
numPage++;
affiche_page(numPage,nombrePage);
});
// FIN CLICK SUIVANT
//DEBUT CLICK PRECEDENT
$("#precedent").click(function() {
numPage--;
affiche_page(numPage,nombrePage);
});
// FIN CLICK PRECEDENT
//DEBUT CLICK FIRST
$("#first").click(function() {
numPage=1;
affiche_page(numPage,nombrePage);
});
// FIN CLICK FIRST
//DEBUT CLICK LAST
$("#last").click(function() {
numPage=(nombrePage-1);
affiche_page(numPage,nombrePage);
});
// FIN CLICK LAST
function affiche_page(numPage,nombrePage) {
$.ajax({
type: 'GET',
url: 'xml/villes'+indice_region+'_'+numPage+'.xml',
dataType: 'xml',
data : 'region='+$(this).val(),
success: function(document, status) {
xmlDoc = document;
var imax = 111;
$(xmlDoc).find('ville').each(function() { //cherche tous les <ville> du xml
imax = imax+1; //à la fin du each, xmax = nombre total de ville
});
$('#liste_club').empty();
var i=0;
var ville = new Array(); //creation tableau qui va contenir les clubs
$(xmlDoc).find('ville').each(function() { //pour tous les clubs trouvés (ville)
i = i+1;
if ( (i >(numPage/numPage)-1) && (i <=(10*(numPage/numPage))) ) {
ville[i] = $(this).text(); //ajouts des 10 clubs dans le tableau
var tr = $('<tr style="height:18px;"><td></td></tr>').appendTo('#liste_club'); // div liste_club recoit variable tr contenant <tr><td></td></tr>
$(tr).text(ville[i]); //variable tr recoit tableau
}
});
if (numPage == 1) {
$('#suivant').css({'visibility' : 'visible'});
$('#last').css({'visibility' : 'visible'});
$('#precedent').css({'visibility' : 'hidden'});
$('#first').css({'visibility' : 'hidden'});
}
if (numPage != 1) {
$('#suivant').css({'visibility' : 'visible'});
$('#last').css({'visibility' : 'visible'});
$('#precedent').css({'visibility' : 'visible'});
$('#first').css({'visibility' : 'visible'});
}
if (numPage == (nombrePage-1)) {
$('#suivant').css({'visibility' : 'hidden'});
$('#last').css({'visibility' : 'hidden'});
$('#precedent').css({'visibility' : 'visible'});
$('#first').css({'visibility' : 'visible'});
}
affiche_pagination(numPage,nombrePage);
}})
}// fin de la fonction affiche_page
function affiche_pagination(numPage,nombrePage) {
$('#div_boutons').empty();
$('#div_boutons').css({'visibility' : 'visible'});
if (nombrePage > 1 ){ //si le nombre de page n'est pas égal à 1 (si il y a plusieurs pages)
for (b=numPage; b<(numPage+10); b++){ //pour un départ au numPage actuel, avec incrémentation jusqu'à numPage+10
if (b<nombrePage){ //b inférieur ou égal au nombre de page
$('#div_boutons').append('<li value="'+(b)+'">'+(b)+'</li>');
}
}
$('li').click(function() {
numPage = $(this).attr("value");
affiche_page(numPage,nombrePage);
});
}
}// fin de la fonction affiche_pagination
});
Merci pour votre aide et je précise que je me suis mit au Javascript depuis 1 mois

Modifié par lele91 (11 May 2012 - 10:24)