Barre navigation tableau

Résolu/Fermé
infoxx Messages postés 31 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 24 mai 2013 - 6 mai 2013 à 09:59
infoxx Messages postés 31 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 24 mai 2013 - 6 mai 2013 à 15:41
Bonjour à tous!
Voilà mon problème : je souhaite récupérer les données de sortie d'une requête sql pour les mettre en forme dans un tableau html. J'ai fais la fonction permettant de récupérer ces données, mais maintenant je souhaiterais n'afficher que des tableau de 15lignes par exemple, et donc mettre en place un système de barre de navigation permettant de voir les lignes suivantes/précédentes du tableau.
J'ai fais une fonction pour cela, et je ne comprend absolument pas pourquoi ça ne marche pas..
Votre aide serait vraiment la bienvenue! Merci d'avance! :)

Voici ma fonction:

function barre_navigation($page_courante, $total_page, $nom_form="frm_affichage"){
$rep_images = "../Images/fleches/";

if($page_courante==0){
$btnPrec = "<img src=\"" . $rep_images . "nav_debut_disabled.GIF\" title=\"Debut\" width=\"32\" height=\"32\" border=\"0\">";
$btnDeb = "<img src=\"" . $rep_images . "nav_prec_disabled.GIF\" title=\"Precedent\" width=\"32\" height=\"32\" border=\"0\">";
}
else{
$btnPrec = "<a href=\"#\" class=\"icone\" onClick=\"javascript:document.getElementById('".$nom_form."').page.value=".($page_courante-1).";".$nom_form.".submit();\"><img src=\"".$rep_images."nav_prec.GIF\" title=\"Precedent\" width=\"32\" height=\"32\" border=\"0\"></a>";
$btnDeb = "<a href=\"#\" class=\"icone\" onClick=\"javascript:document.getElementById('".$nom_form."').page.value=0;".$nom_form.".submit();\"><img src=\"".$rep_images."nav_debut.GIF\" title=\"Debut\" width=\"32\" height=\"32\" border=\"0\"></a>";
}

if(($page_courante)+1>=$total_page){
$btnSuiv = "<img src=\"" . $rep_images . "nav_suiv_disabled.GIF\" title=\"Suivant\" width=\"32\" height=\"32\" border=\"0\">";
$btnFin = "<img src=\"" . $rep_images . "nav_fin_disabled.GIF\" title=\"Fin\" width=\"32\" height=\"32\" border=\"0\">";
}
else{
$btnSuiv = "<a href=\"#\" class=\"icone\" onClick=\"javascript:document.getElementById('".$nom_form."').page.value=".($page_courante+1).";".$nom_form.".submit();\"><img src=\"" . $rep_images . "nav_suiv.GIF\" title=\"Suivant\" width=\"32\" height=\"32\" border=\"0\"></a>";
$btnFin = "<a href=\"#\" class=\"icone\" onClick=\"javascript:document.getElementById('".$nom_form."').page.value=" . ($total_page-1) . ";".$nom_form.".submit();\"><img src=\"" . $rep_images . "nav_fin.GIF\" title=\"Fin\" width=\"32\" height=\"32\" border=\"0\"></a>";
}

$retour = " <table width=\"300\" align=\"center\" id=\"navigation_barre\">\n";
$retour .= " <tr align=\"center\">\n";
$retour .= " <td width=\"40\" valign=\"middle\">" . $btnDeb . "</td>\n";
$retour .= " <td width=\"40\" height=\"40\" valign=\"middle\">" . $btnPrec . "</td>\n";
$retour .= " <td>page " . ($page_courante+1) . " / " . $total_page . "</td>\n";
$retour .= " <td width=\"40\" valign=\"middle\">" . $btnSuiv . "</td>\n";
$retour .= " <td width=\"40\" valign=\"middle\">" . $btnFin . "</td>\n";
$retour .= " </tr>\n";
$retour .= " <input name=\"page\" id=\"page\" type=\"hidden\" value=\"" . $page_courante . "\">\n";
$retour .= " </table>\n";

foreach($_POST as $nom => $valeur){
if($nom!="page"){
$retour .= " <input name=\"".$nom."\" id=\"".$nom."\" type=\"hidden\" value=\"" . $valeur . "\">\n";
}

}
return $retour;
}
A voir également:

6 réponses

Utilisateur anonyme
6 mai 2013 à 11:48
Bonjour,

En claire, vous voulez un affichage de 15lignes au maximum? Donc si vous avez 40lignes, le 1er affichage soit les 15 premières lignes. Avec un bouton de navigation, afficher les 15 suivantes, puis en recliquant sur ce même bouton, cela affichera les 10 dernières. J'ai bon?

Z.
0
infoxx Messages postés 31 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 24 mai 2013
6 mai 2013 à 12:22
Oui, c'est exactement cela, avec, lorsque l'on n'est pas à la première page, la même fonctionnalité, pour revenir sur la(les) page(s) précédente(s)
0
infoxx Messages postés 31 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 24 mai 2013
Modifié par infoxx le 6/05/2013 à 12:34
Le problème est que lorsque je clique sur les flèches (précédent ou début) cela ne fait rien, la page s'actualise mais rien ne change.
Pourtant, quand je récupère la valeur de
document.getElementById('".$nom_form."').page.value

elle est bien modifiée..
0
infoxx Messages postés 31 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 24 mai 2013
6 mai 2013 à 14:04
Ouf, le problème est résolu : il venait simplement de l'appel de la fonction: le paramètre $page_courante doit être dynamique (isset $_POST['page'] ? $_POST['page'] : "") par exemple.
Merci quand même zemalabare! :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sinon tu peux utiliser le plugin jQuery "datatables" qui permet de faire ce genre de tableau très rapidement et très facilement ;)
0
infoxx Messages postés 31 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 24 mai 2013
Modifié par infoxx le 6/05/2013 à 14:07
je ne connais pas du tout jQuery.. et enfait la deadline arrive bientôt donc ne pense pas m'y mettre tout de suite, mais oui je me suis aperçue durant ce projet que pas mal de truc aurait pu être simplifier par l'utilisation du jQuery donc dès que j'aurais le temps (et l'envie ;) ) j'y jettrais un bon coup d'oeil!
0
Utilisateur anonyme
6 mai 2013 à 15:02
Ravi de t'avoir auto-aider :D
tu peux passer ton topic en résolu stp? ton code intéressera plus d'un je pense
0
infoxx Messages postés 31 Date d'inscription vendredi 26 avril 2013 Statut Membre Dernière intervention 24 mai 2013
Modifié par infoxx le 6/05/2013 à 15:41
ha ha oui!
ah oui, j'avais oublié, done!
0