jimmywydadi
Messages postés4Date d'inscriptiondimanche 4 février 2007StatutMembreDernière intervention15 février 2008 1 oct. 2007 à 15:54
bonjour
je voudrais un code premet de faire (Précé [ 1 2 3 4 5 6 7 8 9 ] Suiv)
d'une seul page web
cs_guss
Messages postés2Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention15 mai 2007 15 mai 2007 à 16:04
Bonjour,
Merci pour le code et son optimisation.
J'ai changé une ligne dans le code optimisé de Truemistress.
$html.= ceil($d/$l)+1;//affiche le numéro de la page courante
à la place de :
$html.= ceil($nb_total/$l)-ceil(($nb_total-$d)/$l)+1; //affiche le numéro de la page courante
Bonne Journée
Guss
eax
Messages postés728Date d'inscriptionjeudi 20 juin 2002StatutMembreDernière intervention 7 novembre 20072 27 janv. 2007 à 16:22
oui, c vrai que ça le rend un peu plus propre, merci ...
truemistress
Messages postés1Date d'inscriptionvendredi 26 janvier 2007StatutMembreDernière intervention27 janvier 2007 27 janv. 2007 à 12:21
Merci pour ce code très utile.
Par contre, en tenant compte -entre autre- des commentaires postés, je l'ai simplifié et optimisé :
- en remplaçant les '&' par '&'
- en remplaçant les 'nowrap' par 'nowrap="nowrap"'
- en supprimant $lien, par ex : ['.$lien.'d=0&l='.$l.' par ] (cela permet d'avoir une URL qui ne se rallonge pas à chaque action, elle reste constamment du type '?d=xx&l=xx')
- en remplaçant les 'echo' par '&html.= ', ce qui permet de faire un 'return $html;' à la fin de fonction, pour que quand on appelle la fonction ça affiche directement les éléments de navigation, dans n'importe quelle page.
- j'ai remplacé les textes "page suivante", "dernière page" etc.. par des images standards (left_on.gif=une flèche vers la gauche pour le lien "précédente" et 2 flèches vers la gauche pour le lien "première" ; idem avec des fleches vers la droite pour "suivante" et "dernière", avec les textes alternatifs correpondants.
- j'ai rajouté $d = $_GET['d'];
Du coup, cette fonction peut etre copiée et appliquée n'importe où (en changeant juste le nom des images : 'right.on.gif' et 'left_on.gif').
Voici donc la fonction allégée et optimisée que je propose :
function gestion_pages($d,$l,$nb_total){
//$d: premier enregistrement affiché
//$l: nombre d'enregistrements affichés par page
//$nb_total: nombre total d'enregistrements
$html.= '';
$debut=$d-$l;
if($debut<0) $debut=0;
if($d>0)
{
$html.= ' ';
$html.= '';
}
$html.= ', page ';
$html.= ceil($nb_total/$l)-ceil(($nb_total-$d)/$l)+1; //affiche le numéro de la page courante
$html.= '/';
$html.= ceil($nb_total/$l); //affiche le nb total de pages
$html.= ', ';
$suiv=$d+$l;
//on rajoute ces infos avant sa requete
$d = $_GET['d'];
if(!isset($_GET['l'])) $_GET['l']=4; //pour avoir que 4 enregistrements par page par exemple
if(!isset($_GET['d'])) $_GET['d']=0; //on affiche en premier l'enregistrement 0 (le premier) par défaut
// la requete :
$results = $db->dbQuery("SELECT * FROM nomtable LIMIT ".$_GET['d'].",".$_GET['l']." ");
//appel de la fonction :
$barrenavig = gestion_pages($_GET['d'],$_GET['l'],$nb_total);
cs_aminix9
Messages postés96Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 9 février 2010 29 juil. 2004 à 12:50
je n ai pa de commentaire mais je tiens à te remercier car ça m a aidé bcp .
j ai pris ta fonction et j ai rempli les champs vides et ça marche .
merci encore une fois ;-)
derfum
Messages postés45Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 5 septembre 2004 21 juil. 2004 à 21:01
Ceci permettra d'approfondir; mais en quelques mots voilà ce qu'il faut retenir du XHTML :
- Les déclarations de documents sont importants
- Le XHTML (n'étant qu'une DTD du XML) est avant tout un langage sémantique, c'est-à-dire d'organisation de concepts, pas de présentation (comme l'était HTML 3.2/4.0). Il faut donc séparer le fond de la forme, c'est pour ça que tous les outils de présentation (balises font, center, u, i, b, s ; attributs align, cell*...) sont dépréciés (et même illégale pour le XHTML strict) et à remplacer par du CSS. De plus, les balises peu utilisées en HTML (blockquote, dd, dt, strong, em) ne sont pas juste des alias de pre, ul, li, b, i mais bien porteuses d'un concept diffèrent à utiliser à bon escient.
- L'emboîtement correct des balises est exigé
- Toutes les balises se ferment (même
,
, ...)
- Les URLs sont encodées (&)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 21 juil. 2004 à 20:15
oui il y a www.openweb.eu.org qui est pas mal ;-)
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 21 juil. 2004 à 19:02
Je ne suis pas encore assez xhtml, je devrais m'y mettre bientot lorsque j'airai du temps ! mais c'est quelque chose que je dois apprendre :) Si tu connais une place ou tous les standards sont bien écrit et pas perdu dans la masse je suis prèt à tout lire :) (j'espere qu'il y a autre chose que wc3 :P)
derfum
Messages postés45Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 5 septembre 2004 21 juil. 2004 à 11:54
On veut jouer les lourds sur les standards ? ^_^ alors :
* cellspacing="0" cellpadding="2" border="0"
* align="center" valign="bottom"
--> Deprecié : préférez les feuilles de style
* nowrap
--> Erreur ! remplacer par nowrap="nowrap" (les raccourcis sont interdits en xhtml, comme selected, checked, disable, ismap, nowrap...)
FReD
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 20 juil. 2004 à 18:10
"je vois que tu es quand même avancé en php, tu pourrais commencer à te fier aux standards... ceux de php on dirait que tu les maitrises alors pourquoi ne pas essayer ceux des commentaires de fonction"
et XHTML par la même occasion ;-) (par exemple le & dans les urls il faut le remplacer par &
a +
cs_GRenard
Messages postés1662Date d'inscriptionlundi 16 septembre 2002StatutMembreDernière intervention30 juillet 20081 19 juil. 2004 à 09:21
Tu devrais essayer de ne pas passer une variable superglobale dans la fonction puisque dans celle ci tu peux y accèder dans la fonction directement...
Je comprends que tu fais cela parce que tu veux garder tes paramètres passé en _GET
Alors encore mieux et plus amusant à faire (mouarf je l'ai fait mais je vais te laisser chercher vu que tu m'as l'air un bon petit codeur ;))
C'est de ne pas passer le lien du tout ni le mettre dans le a href, mais de commencer directement le lien par
?d= (par exemple) et de rajouter à la fin &".$query."
$query pouvant être $_SERVER['QUERY_STRING'] SANS les variables $d et et $l bien sur (ya un peu de ereg à faire la dedans ;))
2ieme critique
Normalement, une fonction, permet soit d'alléger le code ou l'on est présentement, (genre appeler une fonction qui va afficher beaucoup de chose (avec echo)), ou encore, ca sert au lieu de se répeter 50 fois, et l'autre c'est d'afficher un module...
Ta fonction devrait etre un "module" qui devrait fonctionner sur n'importe quel site. Le seul problème c'est que tu fais pleins de echo de tableau... Moi si je veux ta fonction je dois enlever ces echo et ne garder que les echo des links... (ou encore mieux, faire un return ...)
Donc en fait ce que je te propose de faire, c'est de faire la fonction le plus modulaire possible pour que n'importe qui puisse prendre la fonction avec directement copier coller sans rien modifier à l'intérieur !
(Ca c'est trop fort quand ca arrive :P)
3ieme critique,
je vois que tu es quand même avancé en php, tu pourrais commencer à te fier aux standards... ceux de php on dirait que tu les maitrises alors pourquoi ne pas essayer ceux des commentaires de fonction ;)
/**
* @return void
* @param int $l
* @desc Une petite description
*/
28 sept. 2009 à 11:41
http://www.romualb.com/2009/09/27/144/classe_d_affichage_de_listes.html
1 oct. 2007 à 15:54
je voudrais un code premet de faire (Précé [ 1 2 3 4 5 6 7 8 9 ] Suiv)
d'une seul page web
15 mai 2007 à 16:04
Merci pour le code et son optimisation.
J'ai changé une ligne dans le code optimisé de Truemistress.
$html.= ceil($d/$l)+1;//affiche le numéro de la page courante
à la place de :
$html.= ceil($nb_total/$l)-ceil(($nb_total-$d)/$l)+1; //affiche le numéro de la page courante
Bonne Journée
Guss
27 janv. 2007 à 16:22
27 janv. 2007 à 12:21
Par contre, en tenant compte -entre autre- des commentaires postés, je l'ai simplifié et optimisé :
- en remplaçant les '&' par '&'
- en remplaçant les 'nowrap' par 'nowrap="nowrap"'
- en supprimant $lien, par ex : ['.$lien.'d=0&l='.$l.' par ] (cela permet d'avoir une URL qui ne se rallonge pas à chaque action, elle reste constamment du type '?d=xx&l=xx')
- en remplaçant les 'echo' par '&html.= ', ce qui permet de faire un 'return $html;' à la fin de fonction, pour que quand on appelle la fonction ça affiche directement les éléments de navigation, dans n'importe quelle page.
- j'ai remplacé les textes "page suivante", "dernière page" etc.. par des images standards (left_on.gif=une flèche vers la gauche pour le lien "précédente" et 2 flèches vers la gauche pour le lien "première" ; idem avec des fleches vers la droite pour "suivante" et "dernière", avec les textes alternatifs correpondants.
- j'ai rajouté $d = $_GET['d'];
Du coup, cette fonction peut etre copiée et appliquée n'importe où (en changeant juste le nom des images : 'right.on.gif' et 'left_on.gif').
Voici donc la fonction allégée et optimisée que je propose :
function gestion_pages($d,$l,$nb_total){
//$d: premier enregistrement affiché
//$l: nombre d'enregistrements affichés par page
//$nb_total: nombre total d'enregistrements
$html.= '';
$debut=$d-$l;
if($debut<0) $debut=0;
if($d>0)
{
$html.= ' ';
$html.= '';
}
$html.= ', page ';
$html.= ceil($nb_total/$l)-ceil(($nb_total-$d)/$l)+1; //affiche le numéro de la page courante
$html.= '/';
$html.= ceil($nb_total/$l); //affiche le nb total de pages
$html.= ', ';
$suiv=$d+$l;
if($d+$l<$nb_total)
{
$html.= ' ';
$html.= '';
}
$html.= '
';
return $html;
}
//on rajoute ces infos avant sa requete
$d = $_GET['d'];
if(!isset($_GET['l'])) $_GET['l']=4; //pour avoir que 4 enregistrements par page par exemple
if(!isset($_GET['d'])) $_GET['d']=0; //on affiche en premier l'enregistrement 0 (le premier) par défaut
// la requete :
$results = $db->dbQuery("SELECT * FROM nomtable LIMIT ".$_GET['d'].",".$_GET['l']." ");
//appel de la fonction :
$barrenavig = gestion_pages($_GET['d'],$_GET['l'],$nb_total);
29 juil. 2004 à 12:50
j ai pris ta fonction et j ai rempli les champs vides et ça marche .
merci encore une fois ;-)
21 juil. 2004 à 21:01
En bon citoyen, j'indique quand même en premier lien une traduction officielle du W3C (malgré tout compréhensible) : http://www.la-grange.net/w3c/xhtml1/
Pour ce qui est des standards du web, voilà un site référence à posséder dans tous bons favoris (ou signets, ou marques-pages...) : http://www.openweb.eu.org (et c'est en français)
Et plus particulièrement voilà 4 articles à lire :
http://www.openweb.eu.org/articles/html_au_xhtml/
http://www.openweb.eu.org/articles/differentes_dtd/
http://www.openweb.eu.org/articles/respecter_semantique/
http://www.openweb.eu.org/articles/caracteres_illegaux/
Ceci permettra d'approfondir; mais en quelques mots voilà ce qu'il faut retenir du XHTML :
- Les déclarations de documents sont importants
- Le XHTML (n'étant qu'une DTD du XML) est avant tout un langage sémantique, c'est-à-dire d'organisation de concepts, pas de présentation (comme l'était HTML 3.2/4.0). Il faut donc séparer le fond de la forme, c'est pour ça que tous les outils de présentation (balises font, center, u, i, b, s ; attributs align, cell*...) sont dépréciés (et même illégale pour le XHTML strict) et à remplacer par du CSS. De plus, les balises peu utilisées en HTML (blockquote, dd, dt, strong, em) ne sont pas juste des alias de pre, ul, li, b, i mais bien porteuses d'un concept diffèrent à utiliser à bon escient.
- L'emboîtement correct des balises est exigé
- Toutes les balises se ferment (même
,
, ...)
- Les URLs sont encodées (&)
21 juil. 2004 à 20:15
21 juil. 2004 à 19:02
21 juil. 2004 à 11:54
* cellspacing="0" cellpadding="2" border="0"
* align="center" valign="bottom"
--> Deprecié : préférez les feuilles de style
* nowrap
--> Erreur ! remplacer par nowrap="nowrap" (les raccourcis sont interdits en xhtml, comme selected, checked, disable, ismap, nowrap...)
FReD
20 juil. 2004 à 18:10
et XHTML par la même occasion ;-) (par exemple le & dans les urls il faut le remplacer par &
a +
19 juil. 2004 à 09:21
Je comprends que tu fais cela parce que tu veux garder tes paramètres passé en _GET
Alors encore mieux et plus amusant à faire (mouarf je l'ai fait mais je vais te laisser chercher vu que tu m'as l'air un bon petit codeur ;))
C'est de ne pas passer le lien du tout ni le mettre dans le a href, mais de commencer directement le lien par
?d= (par exemple) et de rajouter à la fin &".$query."
$query pouvant être $_SERVER['QUERY_STRING'] SANS les variables $d et et $l bien sur (ya un peu de ereg à faire la dedans ;))
2ieme critique
Normalement, une fonction, permet soit d'alléger le code ou l'on est présentement, (genre appeler une fonction qui va afficher beaucoup de chose (avec echo)), ou encore, ca sert au lieu de se répeter 50 fois, et l'autre c'est d'afficher un module...
Ta fonction devrait etre un "module" qui devrait fonctionner sur n'importe quel site. Le seul problème c'est que tu fais pleins de echo de tableau... Moi si je veux ta fonction je dois enlever ces echo et ne garder que les echo des links... (ou encore mieux, faire un return ...)
Donc en fait ce que je te propose de faire, c'est de faire la fonction le plus modulaire possible pour que n'importe qui puisse prendre la fonction avec directement copier coller sans rien modifier à l'intérieur !
(Ca c'est trop fort quand ca arrive :P)
3ieme critique,
je vois que tu es quand même avancé en php, tu pourrais commencer à te fier aux standards... ceux de php on dirait que tu les maitrises alors pourquoi ne pas essayer ceux des commentaires de fonction ;)
/**
* @return void
* @param int $l
* @desc Une petite description
*/
Bonne Chance !