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

Code

 > 

Date / Heure

 > UNE LISTE DÉROULANTE AVEC LES DATES.

UNE LISTE DÉROULANTE AVEC LES DATES.


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Classé sous :liste, deroulante, date, variable, php Niveau :Débutant Date de création :04/08/2006 Date de mise à jour :09/08/2006 10:21:25 Vu :21 287

Auteur : ffwrude

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

 Description

Il suffira de faire un include de cette page à l'endroit souhaiter.

Source

  • <?php
  • echo "<SELECT name='i' Size='1'>";
  • for($i=1; $i<=31;$i++){ //Lister les jours
  • if ($i < 10){ //Lister les jours pour pouvoir leur ajouter un 0 devant
  • echo "<OPTION>0$i<br></OPTION>";
  • }
  • else {
  • echo "<OPTION>$i<br></OPTION>";
  • }
  • }
  • echo "</SELECT>";
  • echo '<SELECT name="d" Size="1">';
  • for($d=1; $d<=12;$d++){ //Lister les mois
  • if ($d < 10){ //Lister les jours pour pouvoir leur ajouter un 0 devant
  • echo "<OPTION>0$d<br></OPTION>";
  • }
  • else {
  • echo "<OPTION>$d<br></OPTION>";
  • }
  • }
  • echo "</SELECT>";
  • $date = date('Y'); //On prend l'année en cours
  • echo '<SELECT name="y" Size="1">';
  • for ($y=2000; $y<=$date; $y++) { //De l'année 2000 à l'année actuelle
  • echo "<OPTION><br>$y<br></OPTION>"; }
  • echo "</SELECT>";
  • ?>
<?php
echo "<SELECT name='i' Size='1'>";

     for($i=1; $i<=31;$i++){	       //Lister les jours

     	       if ($i < 10){		       //Lister les jours pour pouvoir leur ajouter un 0 devant
	       	  echo "<OPTION>0$i<br></OPTION>";
		           }
               else {
	          echo "<OPTION>$i<br></OPTION>";
                    }
                          }
echo "</SELECT>";

echo '<SELECT name="d" Size="1">';

     for($d=1; $d<=12;$d++){	       //Lister les mois

     	       if ($d < 10){		       //Lister les jours pour pouvoir leur ajouter un 0 devant
	       	  echo "<OPTION>0$d<br></OPTION>";
		           }
               else {
	          echo "<OPTION>$d<br></OPTION>";
                    }
                          }
echo "</SELECT>";

$date = date('Y');		 //On prend l'année en cours
	
echo '<SELECT name="y" Size="1">';

     for ($y=2000; $y<=$date; $y++) {	       //De l'année 2000 à l'année actuelle
     	 echo "<OPTION><br>$y<br></OPTION>"; }
echo "</SELECT>";
?>

 Conclusion

Je suis débutant et donc... il y'a de petites incohérences mais ceci marche sans érreurs. Voilà

Rude

voici voici j'ai modifié. J'ai tester, cela marche sans problemes. Encore merci à tous n'hésiter pas à aller voir les explications de  FRANCO_SE à la fin qui clarifie très bien les choses



 Historique

09 août 2006 10:21:25 :
Voici la belle refonte de la source ^^

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

 Sources en rapport avec celle ci

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
DIFFÉRENCE ENTRE DEUX DATE EN JOURS (LISTE RÉCUPÉRÉE DANS UN... par DevilTN
[PHP5] CLASSE DATE/HEURE par FhX
DIFFÉRENCE ENTRE DEUX DATE (LISTE RÉCUPÉRÉE DANS UN TABLEAU) par devinekisai
Source avec Zip MINI LISTE GÉNÉRIQUE AFFICHANT UNE TABLE MYSQL ET PERMETTANT... par antoine129

Commentaires et avis

Commentaire de ffwrude le 04/08/2006 17:06:46

Je viens de m'apercevoir de la premiere ligne ... <? ?> vous pouvez supprimer ce genre de trucs ^^

Rude

Commentaire de FhX le 04/08/2006 19:26:11

La même chose pour afficher les années de date dans un select dans l'ordre décroissant "au cas ou" :

<select name="annee">
<?php
$date = date('Y');
while ( (int) $date >= 1997 ) {
echo '<option value="'.$date.'">'.$date.'</option>';
$date--;
}
?>
</select>

Commentaire de Sannazzarotiti le 05/08/2006 14:01:41

remplace les <? par <?php et essai de pas ferme les balise php pour ton code (et enleve le <? ?> du debut)

Commentaire de malalam le 05/08/2006 19:13:14 administrateur CS

Hello,

ce serait bien que tu mettes ton html à des normes un peu plus récentes : balises en minuscule, attribut name (et id) pour ton select, attribut value pour tes options, balises fermées (<br />).
Côté PHP : ton code va planter sur une config moins relâchée que la tienne : date ('dmY'); avec des apostrophes.
Et autant en faire une fonction, ce sera toujours plus simple à intégrer.

Commentaire de TheSin le 06/08/2006 09:04:52

salut
moi j'aimerais encore te conseiller 3 choses pour ceci :

[code]
if ($d < 10){
echo "<OPTION>0$d<br></OPTION>";}
else {
echo "<OPTION>$d<br></OPTION>";}
[/code]

1) tu peux virer les accolades et tout faire en 2 lignes :
if ($d < 10)  echo "<OPTION>0$d<br></OPTION>" ;
else          echo "<OPTION>$d<br></OPTION>"  ;

2) Essaie de mieux placer tes accolades pour que ça soit un peu plus lisible (j'ai dû remonter le code pour comprendre que la 2nde accolade de la condition venait de la boucle FOR)

3) Regarde du côté de sprintf pour les nombres formattés, c'est nettement plus pratique, surtout quand t'auras besoin de plus de 1 zéro à ajouter aussi ;-)
http://fr.php.net/manual/fr/function.sprintf.php

Commentaire de Gwinyam le 07/08/2006 12:56:52

bon si t'es débutant, c'est déjà pas mal (faut bien l'encourager, non?)

Par contre, sur ce genre de système, c'est de prévir les années bisextiles et si le mois a 30 jours et non 31 ou 28 pour février

la solution pour le nombre de jours par mois est de passer par un tableau et pour les années bisextiles, il y a une histoire de modulo avec des exceptions.

Courage!

Commentaire de ffwrude le 07/08/2006 15:18:09

Merci pour vos commentaires. J'essairai de modifier plus tard mais par manque de temps ... ca va etre dur. Mon but ici était de foutre une simple liste déroulante pour inclure des années. En effet grace à modulo et compagnie cela pourrait etre encore plus performant.

Lorsque j'aurais clarifié mon code et que n'importe qui sera capable de le lire, j'aurais atteint mon but. Je pense que les listes déroulantes beaucoup plus évoluées sont disponible ici ^^ Je voulais toucher un public bien moin capable (passer moi l'expression). Néamoins, je prend note de toutes vos suggestions qui sont les bienvenues.

Rude

Commentaire de franco_se le 09/08/2006 00:38:12

je vais te donner coup de main pour la clarification du code, en te montrant les problemes qui s'y trouvent, et aussi comment le simplifier.

En fait, il y a des erreurs, ms elles sont gerées par le navigateur. Par ex, tu n'a pas fermé les balises <select> pour le mois et l'année.
De plus, il y a des lignes de code qui peuvent etre jetées a la poubelle.

par exemple, pour generer les <select> du jour et du mois, tu as ecris

# <SELECT><?
# for($i=1; $i<=31;$i++){
#  
# if ($i < 10){
# echo "<OPTION>0$i<br></OPTION>";
#  
# }
# else {
# echo "<OPTION>$i<br></OPTION>";
# }
# }
# ?></SELECT><?
#  
#  
# ?><SELECT><?
# for ($d=1; $d<=12; $d++){
#  
# if ($d < 10){
#  
# echo "<OPTION>0$d<br></OPTION>";}
#  
# else {
#  
# echo "<OPTION>$d<br></OPTION>";}}

Or, il y a encore plus simple pour les if ds les boucles for: c'est une ecriture "lineaire"
Voici la meme portion de code reecrite:

# echo "<select>";
# for($i=1; $i<=31;$i++) echo "<OPTION>".(($i < 10)?"0":"").$i."<br></OPTION>";
# echo "</select> <select>";
# for ($d=1; $d<=12; $d++) echo "<OPTION>".(($d < 10)?"0":"").$d."<br></OPTION>";
# echo "</select>";

ici, la forme traditionnelle des if, a savoir:
# if(a<b){
# 'action a'
#  }else{
#  'action b'
#  }

est remplacé par une forme plus simple ( que j'adore):

# (a<b)? 'action a' : 'action b' ;


C'est pour ça que la boucle for perd ces accolades { }, car tout tient en une seule ligne ! :D

De la meme maniere, pour l'année, tu t'est compliqué la vie en faisant

# $temp = date(dmY);
# echo "temp = $temp<br>";
# $annee = $temp[4].$temp[5].$temp[6].$temp[7];
# echo "annee = $annee";

alors que date(Y) te donne directement l'année au format yyyy

Et donc, pour le select de l'année, il suffisait d'ecrire

# echo "<select>";
# for ($y=1999; $y<=date(Y); $y++) echo "<option><br />".$y."<br /></option>";
# echo "<select/>";

Ainsi, a partir de ton code d'origine, et en le retravaillant, je n'obtiens que 9 lignes :

# <?php
# echo "<select>";
# for($i=1; $i <= 31; $i++) echo "   <option>".(($i < 10)?"0":"").$i."</option>";
# echo "</select><select>";
# for ($d=1; $d <= 12; $d++) echo "   <option>".(($d < 10)?"0":"").$d."</option>";
# echo "</select><select>";
# for ($y=1999; $y <= date(Y); $y++) echo "   <option>".$y."</option>";
# echo "<*select>";
# ?>


au passage, a quoi servait ces 3 lignes ? :
- # echo "<br><br>";
- # echo "temp = $temp<br>";
- # echo "annee = $annee";

car les <br> servent a revenir a la ligne. or, il n'y a pas de retour a la ligne ds un menu defilant. ( au passage, en fait, c'est <br /> au format xhtml ... autant ce mettre ds les normes ;) )

de la meme maniere,
# echo "temp = $temp<br>";
et
# echo "annee = $annee";
serviraient a afficher a l'ecran les valeurs de ces variables $temp et  $annee. Mais encapsulé au milieu d'une balise <select></select>, on ne voit rien s'afficher.

enfin, j'espere que ces quelques explications pourront t'aider a progresser, mais c'est un bon debut

Commentaire de ffwrude le 09/08/2006 10:08:08

En fait, trop content que le code marche (sous opéra et FF uniquement d'ailleurs je m'en suis aperçu) j'ai poster tout de suite ^^ Oui je voulais une source à moi ici ^^

Merci pour cette simplification qui oui ! fonctionne. En effet je n'avais pas fermer les balises select, en les fermant, cela fonctionne aussi sous IE. Les lignes echo "temp = .... était en fait des lignes de test que j'avais mis (normalment) en commentaires et que je n'avais pas supprimé.

En effet, j'ai vu plus tard que j'avais afficher la date complete alors que j'aurais pu simplement mettre la date année ^^ Comme ton code est parfait (et bien oui il faut le dire) je ne vais pas corriger ma source en affichant la tienne car...alors ca ne serait plus mon script. Néamoins je promet de le corriger et d'inscrire qu'il faut descendre dans les commentaires pour avoir une version clarifiée et simple de la chose.

Merci encore à tous de m'avoir corrigé.

Rude

PS : (oui les ?> <SELECT> <? était un peu débiles lol j'aurais pu faire un echo "<SELECT> comme je l'avais fait avec options. cela ne marchait pas quand je l'avais fait la premiere fois tout simplement a cause de la : NON fermeture des balises select ^^ voilà

Commentaire de salma85 le 16/10/2006 15:55:58

bonjour
vous pouvez m aider svp !!
ben j'ai une table avec deux  champs (pays et frais d transport )
j ai rempli l liste deroulante d apres  la  table (sam)(france ,espagne....)
je veux  lorsque je selectionne le pays il m'affiche les frais de ce pays dans une autre fenetre dans un champs
voila l code k j ai mi :
<?php  
$server="localhost";
$user="root";
$pass="";
$base="salma";
$con=@mysql_connect($server,$user,$pass);
if($con==false)
{
echo"erreur de connection";
exit();
}
$res=mysql_select_db("salma",$con);
if($res==false)
{
echo"base introuvable";
}
$sql="select distinct pays from frais order by pays";
$res=mysql_query($sql,$con);
if($res==false)
{
echo"erreur interne:requete";
}
echo"<form action='test.php' methode=POST>";
echo"<select name='pays'>\n";

while($ligne=mysql_fetch_array($res))
{
//extract($ligne);
echo    "<option background='#000000' value='$list[pays]'><font      color='#FF0000'>$ligne[pays]</font></option>";

if($pays<>"")
{
echo"<option value='pays'>$pays\n";
}
}
echo"</select>";
echo"<input type='submit' value=\"frais\">
</form>" ;
  ?>
Et MERCIII



Commentaire de ffwrude le 17/10/2006 18:34:04

Hum... je n'ai pas bien compris ton problème... et je ne suis pas sur que tu sois au bon endroit pour poster cela, je pense que sur le forum ca serait mieu.

néamoins je ne pense pas que ton value='pays' soit correct. Parce que si tu veux récuperer la valeur de ton pays. Peut importe que tu mette France ou Nick Karagoua il te resortira pays.

value=$pays te renverra déja ton pays.

Je pense que tu trouveras quelqu'un de largement plus compétent que moi sur un forum.

Rude

Commentaire de neoloop le 30/12/2006 00:52:34

bonjour.
lorsque je vais un include de la page avec vote code, j'ai comme message d'erreur:
Parse error: parse error in c:\program files\easyphp1-8\www\test php\calendrier.php on line 2

j'ai oublié quoi s'il vous plait?

merci d'avance

Commentaire de franco_se le 30/12/2006 12:36:52

affiche ta page, se sera plus simple ;)

Commentaire de neoloop le 30/12/2006 14:15:07

bonjour.
en faite, j'ai fais un include.
<?php
include('connect-site.php');
include 'calendrier.php';
?>

votre scripte est dans un fichier que j'ai appellé calendrier.php.

le message d'erreur est:
Parse error: parse error in c:\program files\easyphp1-8\www\test php\calendrier.php on line 2

Je ne voie pas ce que j'ai oublié.

merci de votre aide.

Commentaire de franco_se le 30/12/2006 15:20:12

montre le contenu de calendrier.php

Commentaire de neoloop le 31/12/2006 00:03:24

et voici:
   1. <?php
   2. echo "<SELECT name='i' Size='1'>";
   3.  
   4.      for($i=1; $i<=31;$i++){     //Lister les jours
   5.  
   6.           if ($i < 10){         //Lister les jours pour pouvoir leur ajouter un 0 devant
   7.           echo "<OPTION>0$i<br></OPTION>";
   8.          }
   9.                else {
  10.      echo "<OPTION>$i<br></OPTION>";
  11.                     }
  12.                           }
  13. echo "</SELECT>";
  14.  
  15. echo '<SELECT name="d" Size="1">';
  16.  
  17.      for($d=1; $d<=12;$d++){     //Lister les mois
  18.  
  19.           if ($d < 10){         //Lister les jours pour pouvoir leur ajouter un 0 devant
  20.           echo "<OPTION>0$d<br></OPTION>";
  21.          }
  22.                else {
  23.      echo "<OPTION>$d<br></OPTION>";
  24.                     }
  25.                           }
  26. echo "</SELECT>";
  27.  
  28. $date = date('Y');         //On prend l'année en cours
  29.    
  30. echo '<SELECT name="y" Size="1">';
  31.  
  32. for ($y=2000; $y<=$date; $y++) {     //De l'année 2000 à l'année actuelle
  33.           echo "<OPTION><br>$y<br></OPTION>"; }
  34. echo "</SELECT>";
  35. ?>

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Stocker la value d'une liste deroulante dans une variable PHP [ par bicz ] Bonjour, Je dois recuperer la value de ma liste deroulante dans une variable PHP, ma liste deroulante est alimenter a partir d'une table. Cette variab Liste deroulante avec php [ par lutin06 ] Salut a tous Je vous explique mon probleme : Sur mon site de vente en ligne , je dispose d'un tableau avec des produits , dans chaque case du tablea Petit pb en PHP, iniatiliser une variable dans une liste deroulante [ par dadoudamien ] Bonjour,JE galère un peu.J'essaye de mettre a jour dynamiquement la variable $qte666, avec une liste déroulante.voici le tronche de mon code (c juste prob avec des listes deroulantes [ par toto99 ] voila mon prob est le suivante:-------------------------------------------j'ai une premiere liste deroulante qui ce remplit directement par raport a m boucle [ par toto99 ] voila je recupe des dates dans une liste deroulante suvant un choix qui ce trouve dans une autre liste deroulante, tous les deux sont alimenter par un recuperé définitivement une variable venue d'une liste deroulante [ par piervs ] En fait, j'ai une premiere liste deroulante, on selectionne la valeur, puis on valide avec un bouton submit. En fonction du choix effectué on obtient Liste déroulante en php [ par iomega ] Bonjour à tous!!!J'ai une liste déroulant ou je séléctionne une dateavec un form action et lorsque je sélectionne cette date le problème c'est que cel Liste deroulante et redirection ? [ par Joez ] Bonjour, je voudrais faire une liste deroulante PHP contenant des dates et qui redirige vers une page php avec en parametres la dateexemple2003 - 2004 php + javascript + liste deroulante [ par ansdodou ] Salut à tous Je suis parvenu à faire afficher le contenu d'une de mes tables dans controle liste mais je ne parvient pas à récupérer les enregistremen comment recuper la valeur de la selection d'une liste deroulante sans bouton de validation formilaire ? [ par fredericmaill ] Bonjour et bonne ann&#233;e 2006 @ tous !!je voudrais savoir comment recuper&#233; dans une varable php la valeur de la selection d'une liste deroulan


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 0,718 sec (3)

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