bonjour
je créé un formulaire de collecte d'heures.
je propose au collecteur la date du jour ou une autre date via un bouton radio.
s'il s'agit d'une autre date, j'ai créé trois zones de listes (année, mois, jour)
Le problème est le suivant :
quand je sélectionne le mois, une variable $m devient paire ou impaire selon le nombre de jours dans le mois (30 ou 31 jours)
je voudrais masquer le jour 31 dans ma liste si le mois est paire (exemple : avril = 30 jours)
ci-dessous mon code :
merci d'avance
Je pense que tu te compliques la vie. Procéder ainsi va t'amener inévitablement à des bugs, comme celui qu'expose Tpoinsot.
PHP propose plusieurs solutions pour valider "automatiquement" les dates, mais le mieux à mon sens reste de passer par du JS. Les solutions ne manquent pas de ce côté, et certaines sont paramétrables à souhait.
Je débute en php et je ne connais pas le javascript.
as-tu une solution en php ?
pour info j'ai simplifié mon code à l'aide d'un tableau des mois et des jours.
J'en profites pour re poser la question de Tpoinsot qui n'a pas eu de réponse :
Et tu fais quoi pour février ?
as-tu une solution en php ?
Il doit exister nombre de scripts tout fait sur la toile.
Si tu veux coder ça toi même regarde les possibilités de mktime() / date() (afin de valider automatiquement des dates) et la class datetime si ton hébergeur le permet.
je ne connais pas le javascript
Il y a des solutions toutes faites et relativement bien documentées qui permettent une mise en place rapide sans grandes compétences en la matière. Si tu n'as jamais touché à javascript tu risques effectivement de galérer mais le jeux en vaut la chandelle.
Par ex : http://www.dynarch.com/projects/calendar/
En général, quand on fait soi-même, on crée un tableau de 12 nombres contenant le nombre de jours par mois en utilisant la date du premier jour de chaque mois - 1. Tu suis ?
Après, on fait une brave boucle pour l'affichage.
Sinon, on remplit les 12 mois à la main et on calcule pour février en fonction de l'année (multiple de 4 - multiple de 100 + récup des multiples de 400) au cas où elle serait bissextile (si tous les mois avaient 30 jours ce serait quand même plus simple)