cette petite fonction s'en chargera pour vous:
dans l'exemple ci dessous c'est pour la saisie d'un agenda avec date et heure pour des evenements a enregistre en BD
- vous choisissez le nom des variables
- le debut et la fin et l'incrementation de la numerotation des options
- la valeur de preselection
- les arrondis inf et sup a utilise pour un calcul de la preselection (si ? )
dans l'ex. qui suit un arrondi au 5 mn - ou - 2.5mn
- la liste des options pour l'affichage
<?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=\"selected\">$option</option>\n";
}else{
print " <option value=\"$loop\">$option</option>\n";
}
}
print " </select>\n";
}
?>
bon j'usque la ,ça ne dit pas grand chose.un exemple pour la suite:
<?php
// les preliminaires ***************
$Langue="fr"; // 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")
);
$event_start = time(); // timestamp UNIX pour l'exemple choisissez le votre
/* creation des boites de selection */
$select=date("w",$event_start); // 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",$event_start); // le jour du mois
select("day_start",1,31 ,1 ,$select ,0 ,0 ,"" );
$select=date("m",$event_start); // le mois
$txt =array_slice($Mount[$Langue],0);
select("mount_start",1 ,12 ,1 ,$select ,0 ,0 ,$txt );
unset ($txt);
$select=date("Y"); // l'annee
select("year_start",$select-1,$select+5 ,1 ,$select ,0 ,0 ,"" );
$select=date("G",$event_start); // l'heure
select("time_start",0 ,24,1,$select,0,0," h");
$select=date("i",$event_start); // les minutes par tranche de 5
select("Minutes_start",0,60,5,$select,2.5,2.5," mn");
?>
et hop 12*24*365 possibilites valides a traitees bon courage