begin process at 2012 05 27 19:58:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > ECRIVEZ SIMPLEMENT VOS BOITES LISTE DEROULANTE

ECRIVEZ SIMPLEMENT VOS BOITES LISTE DEROULANTE


 Information sur la source

Note :
7,75 / 10 - par 4 personnes
7,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Niveau :Initié Date de création :14/02/2005 Date de mise à jour :14/02/2005 21:08:36 Vu :5 704

Auteur : hrz

Ecrire un message privé
Commentaire sur cette source (36)
Ajouter un commentaire et/ou une note

 Description

dans la serie j'aime pas me taper des lignes et des ligne (presque) identique,
les liste de selection sont des vraies punitions surtout quand elles sont longues et nombreuse donc .....
a la base c'est pour entrer les donnees d'un agenda

Source

  • <?php
  • //***********************************************
  • function select($nom_var,$debut,$fin,$step,$comp,$major,$minor,$txt){
  • print " <select name=\"$nom_var\" size=\"1\">\n";
  • for ($loop=$debut;$loop <=$fin;$loop +=$step) {
  • if (is_array ($txt)){
  • $option= $txt[$loop];
  • }else{
  • if ($txt!="") {
  • $option=$loop.$txt;
  • }else{
  • $option=$loop;
  • }
  • }
  • if ($loop >= ($comp-$minor) and $loop <= ($comp+$major)) {
  • print " <option value=\"$loop\" SELECTED>$option</option>\n";
  • }else{
  • print " <option value=\"$loop\">$option</option>\n";
  • }
  • }
  • print " </select>\n";
  • }
  • //**********************************************
  • // les donnees de base
  • $Langue="uk";
  • $Week=array(
  • "fr"=>array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"),
  • "uk"=>array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
  • );
  • $Mount=array(
  • "fr"=>array("0","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre"),
  • "uk"=>array("0","January","Ferbuary","March","April","May","June","July","August","September","October","November","December")
  • );
  • print "
  • event start <br />\n";
  • $encour=time();
  • $select=date("w",$encour); // le jour de la semaine
  • $txt =array_slice($Week[$Langue],0);
  • select("jour",0,6 ,1 ,$select ,0 ,0 ,$txt );
  • unset($txt);
  • $select=date("j",$encour); // le jour du mois
  • select("day_start",1,31 ,1 ,$select ,0 ,0 ,"" );
  • $txt =array_slice($Mount[$Langue],0);
  • $select=date("m",$encour); // le mois
  • select("mount_start",1 ,12 ,1 ,$select ,0 ,0 ,"" );
  • $select=date("Y"); // l'annee
  • select("year_start",$select-1,$select+5 ,1 ,$select ,0 ,0 ,"" );
  • $select=date("G",$encour); // l'heure
  • select("time_start",0 ,24,1,$select,0,0," h");
  • $select=date("i"); // les minutes par tranche de 5
  • select("Minutes_start",0,60,5,$select,2.5,2.5," mn");
  • print "<hr>
  • event end <br />\n";
  • $select=date("w",$encour); // le jour de la semaine
  • $txt =array_slice($Week[$Langue],0);
  • select("jour",0,6 ,1 ,$select ,0 ,0 ,$txt );
  • unset($txt);
  • $select=date("j"); // le jour du mois
  • select("day_end",1,31 ,1 ,$select ,0 ,0 ,"" );
  • $txt =array_slice($Mount[$Langue],0);
  • $select=date("m",$encour); // le mois
  • select("mount_end",1 ,12 ,1 ,$select ,0 ,0 ,"" );
  • $select=date("Y",$encour); // l'annee
  • select("year_end",$select-1,$select+5 ,1 ,$select ,0 ,0 ,"" );
  • $select=date("G",$encour); // l'heure
  • select("time_end",0 ,24,1,$select,0,0," h");
  • $select=date("i",$encour); // les minutes par tranche de 5
  • select("Minutes_end",0,60,5,$select,2.5,2.5," mn");
  • print("<hr>");
  • ?>
<?php
//***********************************************
function select($nom_var,$debut,$fin,$step,$comp,$major,$minor,$txt){
	print "    <select name=\"$nom_var\" size=\"1\">\n";
	for ($loop=$debut;$loop <=$fin;$loop +=$step) {
	  if (is_array ($txt)){
	  	$option= $txt[$loop];
		}else{
		  if ($txt!="") {
		     $option=$loop.$txt;
		  }else{
		  $option=$loop;
		  }
		}
		if ($loop >= ($comp-$minor) and $loop <= ($comp+$major))  {
	    print "        <option value=\"$loop\" SELECTED>$option</option>\n";
	    }else{
	    print "        <option value=\"$loop\">$option</option>\n";
	    }
	}
	print "    </select>\n";
}
//**********************************************
// les donnees de base
$Langue="uk";
$Week=array(
    "fr"=>array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"),
    "uk"=>array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
    );
$Mount=array(
    "fr"=>array("0","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre"),
    "uk"=>array("0","January","Ferbuary","March","April","May","June","July","August","September","October","November","December")
    );

print "
event start <br />\n";
$encour=time();
$select=date("w",$encour); // le jour de la semaine
 $txt =array_slice($Week[$Langue],0);
 select("jour",0,6 ,1 ,$select ,0 ,0 ,$txt );
 unset($txt);

$select=date("j",$encour); // le jour du mois
 select("day_start",1,31 ,1 ,$select ,0 ,0 ,"" );
 $txt =array_slice($Mount[$Langue],0);

$select=date("m",$encour); // le mois 
 select("mount_start",1 ,12 ,1 ,$select ,0 ,0 ,"" );

$select=date("Y"); // l'annee
 select("year_start",$select-1,$select+5 ,1 ,$select ,0 ,0 ,"" );

$select=date("G",$encour); // l'heure
 select("time_start",0 ,24,1,$select,0,0," h");

$select=date("i"); // les minutes par tranche de 5
 select("Minutes_start",0,60,5,$select,2.5,2.5," mn");

print "<hr>
event end <br />\n";
$select=date("w",$encour); // le jour de la semaine
 $txt =array_slice($Week[$Langue],0);
 select("jour",0,6 ,1 ,$select ,0 ,0 ,$txt );
 unset($txt);

$select=date("j"); // le jour du mois
 select("day_end",1,31 ,1 ,$select ,0 ,0 ,"" );
 $txt =array_slice($Mount[$Langue],0);

$select=date("m",$encour); // le mois 
 select("mount_end",1 ,12 ,1 ,$select ,0 ,0 ,"" );

$select=date("Y",$encour); // l'annee
 select("year_end",$select-1,$select+5 ,1 ,$select ,0 ,0 ,"" );

$select=date("G",$encour); // l'heure
 select("time_end",0 ,24,1,$select,0,0," h");

$select=date("i",$encour); // les minutes par tranche de 5
 select("Minutes_end",0,60,5,$select,2.5,2.5," mn");
 
print("<hr>");
?>

 Conclusion

et en plus il sait faire des preselections approchee
j'ai essayer d'etre asser claire dans mes noms de variables et la fonction est asse courte pour la comprendre facilement


 Historique

14 février 2005 21:08:36 :

 Sources du même auteur

Source avec Zip AVANCER OU REMONTER LE TEMP
Source avec Zip Source avec une capture CALENDRIER PHP
EXPLORATEUR DE REPERTOIRES EN PHP

 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

Commentaires et avis

Commentaire de JoJo738 le 14/02/2005 23:20:49

Aller Anthomicro je vais t'aider :
les $Langue="uk"; et array("", "", ""); sont a bannir.
Mais a remplacé par : $Langue= 'uk';  et array('', '', '');

Ideme  pour date() pour les if () ( if ($txt!="") => if ($txt!=') )
et pour tout le reste enfaite !
Sauf lorsque tu as une tabulation \n \t ...

De plus <hr> devient <hr />, SELECTED en minuscule.

Sinon c'est une tres bonne idée, aller 7/10.

Commentaire de JoJo738 le 14/02/2005 23:22:28

Oups, C'est bin beau de corrigé, mais si on fait des fautes ...
if ($txt!="") => if ($txt!='')

Commentaire de hrz le 15/02/2005 07:49:39

Anthomicro ...!??  c'est quoi c'est qui ca ?
j'ai l'impression que que te trompe d'auteur :)  bref..
remplacer les "  par des ' ça marche aussi et n'est pas un obligation a ma conaissance et tu le precise toi meme :
" Sauf lorsque tu as une tabulation \n \t ... "  changer de syntaxe tout au long d'un script c'est un bon moyens d'inviter  les bugs ..
ok pour le <hr />   pour une compatibilitee W3C
le  SELECTED en minuscule  oui bon  si je reprend pour le changement de syntaxe  ;)  encore que tel que et en regardant le source produit on repere bien la ligne ..

par contre il y a un petit souci : les values sont uniquement mumerique en l'etat actuel du script ....
peut etre un petit complement au script a venir ?

Commentaire de ImmortalPC le 15/02/2005 10:34:42

Salut,
Anthomicro est un membre de ce site et il repète tout le temps les meme choses !!
ex : if($g == "p"){

}

il va encore dire pour la XXX fois que c'est pas bon.
Et que c'est a remplacer par
if$g == 'p'){

}

Mais je suis d'accord je n'ai lut sur aucun site que ce n'était pas bien de mettre "

Alors si quelqu'un à une adresse ou une bonne explication.
@++

Commentaire de JoJo738 le 15/02/2005 10:56:32

Euh, Anthomico, est un membre qui t'aurais deja remonté les bretelles !!! Il aurais bien mieux commenté ton code, mais ... Euh, avec les simple tu va plus vite, meme si le temps gagné les infime. Je crois que les " prenent 1ms en plus d'execution. Alors quand tu as une 1000 lignes ... Vaux mieux utiliser les ', et rien de tel que donné un code aux normes, et qui poura etre utiliser par un grand nombre de personne !

Commentaire de JoJo738 le 15/02/2005 10:59:03

Euh, il y a dans le forum un bonne explication, plutot un exemple : http://www.phpcs.com/forum.v2.aspx?ID=391738

Commentaire de hrz le 15/02/2005 12:17:53

pas si sur du resultat le test est incomplet si si ...
2 options pour simple
1 seul pour double

il en manque 2 :$

faite et surtout refaire plusieurs  fois le test ici
http://hrz.free.fr/test/BenchSimplBouble.php

les resultat ne sont pas stable

Commentaire de malalam le 15/02/2005 13:30:12 administrateur CS

Hello,

je me permets juste :
hrz -> non, c'est bien selected. Et en fait, c'est meme selected="selected", pour une raison que tu enonces un peu plus haut : etre en accord avec le w3c :-)

Pour le reste...double quote ou simple quote, chacun voit midi a sa porte, des l'instant ou il conserve cette ligne de conduite. La plupart des benchs que j'ai vu penchent en faveur du simple quote. Mais bon...
D'ailleurs, ca manque de constance au niveau de l'ecriture ;-) Mais ca arrive a tout le monde.

Commentaire de Anthomicro le 15/02/2005 18:09:31

Salut,

Jojo > lol

Hrz >

tes benchs ne sont pas stables car tu les exécutes en environnement mutualisé, donc la charge serveur n'est pas constante, c'est à dire que à un moment tu peux avoir une demande CPU de 80 % et à un autre moment de 20 %, normal que les temps de génération soient différents.

a ++

Commentaire de ImmortalPC le 15/02/2005 19:58:23

Donc on peut utiliser les " ,no est pas obliger d'utiliser '
@+

Commentaire de hrz le 15/02/2005 21:10:16

on est tous d'accord  et je ne cherchais pas a  ouvir ce genre de debat  
remplacer les simples par des doubles  ou le contraire  a vous de choisir
utiliser le script dynamique pour creer vos source html  statiques si vous le voulez
le but est de symplifier l'ecriture des punitions  de l'ecriture des select

malalam >
selected="selected" c'est juste, autant pour moi

Commentaire de Anthomicro le 15/02/2005 21:16:16

ImmortalPC > tu peux utiliser ce que tu veux, après la propreté/rapidité change en fonction de ce que tu mets.

a +

Commentaire de malalam le 16/02/2005 08:50:53 administrateur CS

Antho -> a priori, ok pour la rapidite. Mais la proprete, cela depend malheureusement des cas. Mettre des evenements, par exemple, force a utiliser des simples quotes la plupart du temps, et du coup, on doit les echapper dans l'echo. Il y a d'autres exemples, ou de toutes manieres, il faudra echapper quelquechose, que l'on utilise les simples, ou doubles quotes.
Ce serait genial si on avait un moyen de coder parfaitement propre! Mais ce n'est pas encore le cas :-(
Perso, je fais comme toi, c'est simples quotes, simplement parce que ce que l'on met le plus souvent dans des echo(s), c'est du html.  Mais je connais de vieux programmeurs dont le code est tres beau a voir, et qui pourtant utilisent uniquement des doubles quotes! Va savoir comment ils font... :-)
Et puis tu sais, question proprete, on peut aussi contourner tous ces problemes : syntaxe heredoc.

Commentaire de coucou747 le 16/02/2005 09:40:00 administrateur CS


malalam.....

voici comment afficher ' ceci dans une chaine : '\''

super non ??

idem avec les " => "\""

elle est pas belle la vie ?

bon, sinon, tu peux t'amuser à installer un linux, débrancher le max de services (affichage, son, serveur mail, serveur apache ... ) et faire un calcul de vitesse... (chez moi, ça marche pas trop mal... les doubles sont vraiment lents, et les simples assez rapides, quand on mets ça pour des chiffres, les $a++; sont mieux que des $a=$a+1;[...])

Les comparatifs de vitesse sont très interessants...

Commentaire de malalam le 16/02/2005 09:45:01 administrateur CS

Heu...

Oui ? Lol, je ne comprends pas ce que tu entends par la? Merci pour l'echappement, mais je sais comment echapper un caractere...;-)

Commentaire de ImmortalPC le 16/02/2005 10:33:17

Salut,
moi j'utilise les " car j'ai du mal à sélectionner les élément entre les ' '

Commentaire de coucou747 le 16/02/2005 11:00:18 administrateur CS

lol c'est pourtant très simple et plus rapide... si t'as un éditeur qui colore le texte en fonction de la synthaxe, c'est bien plus simple...

Commentaire de ImmortalPC le 16/02/2005 11:53:23

Heu j'utilise workpad :(
Tu utilise koi ?

Commentaire de ImmortalPC le 16/02/2005 11:53:31

Heu j'utilise workpad :(
Tu utilise koi ?

Commentaire de ImmortalPC le 16/02/2005 11:53:35

Heu j'utilise workpad :(
Tu utilise koi ?

Commentaire de Anthomicro le 16/02/2005 12:51:53

lol, perso le bloc notes de win ;-)

a ++

Commentaire de malalam le 16/02/2005 12:58:21 administrateur CS

Serieux ?
Quel courage...

moi PHP Designer 2005, gratos, tres sympa.
Et au boulot, Maguma, mais bon, c'est impose. Mais il est bien aussi.

Commentaire de Anthomicro le 16/02/2005 13:11:51

Bah ouais je m'y suis fait au bloc-notes, y'a rien d'inutile dedans mdr ^^

mais bon faudrait que je me fasse un bloc notes avec juste la coloration syntaxique de plus ça serait pas mal

a ++

Commentaire de malalam le 16/02/2005 13:20:45 administrateur CS

Ben oui, la coloration c'est sympa quand meme...
J'aime bien les browsers de classes aussi, c'est utile!
Et un bon debugger, c'est toujours moins fatiguant que de relancer chaque fois son explorateur lol.
L'auto-completion, je m'en fous par contre. Mais c'est agreable quand ton editeur te donne la syntaxe d'une fonction, par contre, quand tu la tapes...!
Enfin bref...risque pas que je code avec le bloc-note!

Commentaire de Anthomicro le 16/02/2005 13:41:23

Arf l'auto complétion bof, ça fait comme word, j'aime pas trop

Commentaire de coucou747 le 16/02/2005 14:30:51 administrateur CS

coloration + afichage de ligne + possibilitée de "cacher" des blocs d'instructions (entre { et } en cliquand dans une marge en face)...

Vive le Kwrite de linux

perso, le bloc note, j'ai testé, mais j'ai pas suporté longtemps...

Commentaire de grandvizir le 16/02/2005 16:43:19

Un colorateur syntaxique pour PHP (voir 50 autres langages si vous voulez) :
http://www.delphifr.com/code.aspx?ID=27667

L'exe téléchargeable sera uploadé sur mon site dans 2 jours max. Donc attendez au moins le 19 février 2005. Je suis désolé, mais je ne manipule pas tous les éléments à la fois.

Commentaire de malalam le 16/02/2005 16:52:43 administrateur CS

Comme il fait de la pub pour ses sources, l'autre ;-)

Commentaire de grandvizir le 16/02/2005 17:36:25

L'autre... il porte un nom et il s'appelle grandvizir. Par ailleurs, dois-je rappeller le numéro 389336 ?

Pleurons donc de vous voir utiliser des logiciels même pas pro-CS. Le mien est open-source et très pratique (d'ailleurs, il est ok téléchargeable maintenant). Alors tu devrais être content.

Aller, ne nous écartons pas du sujet qui est d'écrire une liste déroulante. Je dirais qu'il y a plus simple: une fonction avec 1 paramètre, un foreach, des echo et le tour est joué.

8=))

Commentaire de malalam le 16/02/2005 17:46:30 administrateur CS

Grandvizir, c'est le nom, ou le prenom...?

Okiii, je vais la tester ta source... :-)
Mais...mon php designer 2005 est open source aussi hein!!

D'accord pour la source, qui de plus est tres ciblee.

Commentaire de grandvizir le 16/02/2005 17:56:44

En tout cas, malalam c'est improbablement un nom, ni un prénom. Et grandvizir c'est pareil. C'est un pseudo comme un autre. Note: on n'est pas là pour parler de cela.

Cliquez ici pour plus de fun... Dénichés en 2 secondes:
http://www.phpcs.com/forum.v2.aspx?ID=389564

Commentaire de malalam le 16/02/2005 18:00:43 administrateur CS

Qui sait...;-)

Commentaire de hrz le 17/02/2005 07:41:53

grandvizir >
- c'est sur qu'il y avait plus simple pour ecrire une liste et si c'est poser ici c'est pour les possibilitee de la fonction
- pour obtenir les memes options c'est moin sur
dans l'exemple ici :
. la possibilitee du multi affichage
. la preselection automatique des dates et heures
. tu change le $encour et tu te base sur une date differente
. a remarque ici la preselection des minutes arrondi a +-2.5
en fait les possibilitees sont dans les parametres transmis a la fonction

et je comfirme aussi le sujet ,c'est le script presente le sujet  pas un forum qui fausse les infos de popularitee du script (remarque c'est sympa pour les stats )

le script est deja en 2me page de google avec
BOITES LISTE DEROULANTE comme recherche  lol merci!

Commentaire de coucou747 le 27/03/2007 17:12:34 administrateur CS

utilise les sessions ou les cookies et du javascript, c'est super simple a coder

Commentaire de CEPTA le 28/03/2007 02:44:16

ouais tu sais le faire en javascript ou vaut obligatoirement utiliser une session?

Commentaire de coucou747 le 28/03/2007 03:01:01 administrateur CS

bah tu utilises des cookies pour le js...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,224 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales