Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Forcer la date du jour par défaut dans un champ select

1 view
Skip to first unread message

Aldo M.

unread,
Nov 12, 2010, 9:42:51 AM11/12/10
to
Voici mon probl�me, a priori la solution n'est pas simple.

L'utilisateur doit choisir une date � l'aide de trois champs select dans
un formulaire (trois listes d�roulantes � choix forc�s, donc).

Je veux r�cup�rer la date du jour et attribuer dynamiquement les valeurs
du jour par d�faut aux select.

C'est-�-dire mettre l'attribut "selected" dans le bon "option".

Avec du Javascript je suppose, mais comment ?


--
Aldo M.

Olivier Miakinen

unread,
Nov 12, 2010, 10:25:45 AM11/12/10
to
Avant-propos : Aldo, ton adresse invalide n'est pas conforme aux usages.
Tu devrais la suffixer par le nom de domaine rᅵservᅵ .invalid :
From: "Aldo M." <aXl...@idXioXmaXtiXqueX.oXXrXg.invalid>
ou :
From: "Aldo M." <aXl...@idXioXmaXtiXqueX.oXXrXg.INVALID>
D'avance merci.

Le 12/11/2010 15:42, Aldo M. a ï¿œcrit :
> Voici mon problï¿œme, a priori la solution n'est pas simple.

Ah ?

> L'utilisateur doit choisir une date ᅵ l'aide de trois champs select dans
> un formulaire (trois listes dᅵroulantes ᅵ choix forcᅵs, donc).
>
> Je veux rï¿œcupï¿œrer la date du jour et attribuer dynamiquement les valeurs
> du jour par dï¿œfaut aux select.
>
> C'est-ᅵ-dire mettre l'attribut "selected" dans le bon "option".


>
> Avec du Javascript je suppose, mais comment ?

Tu peux le faire soit en PHP (en mettant l'attribut selected directement
ᅵ l'OPTION qui convient), soit en JavaScript (en changeant l'attribut
selected aprï¿œs coup). Attention que la date risque de ne pas ï¿œtre la
mᅵme, mᅵme si l'ordinateur du visiteur est ᅵ l'heure (je suppose que le
serveur y est forcᅵment), selon le fuseau horaire et la proximitᅵ ou
non de minuit.

Cela ï¿œtant dit, qu'est-ce que tu ne sais pas faire ?

En JavaScript :
var maintenant = new Date();
var jour = maintenant.getDate();
var mois = maintenant.getMonth();
var annee = maintenant.getFullYear();

En PHP :
http://fr.php.net/manual/fr/function.date.php

SAM

unread,
Nov 12, 2010, 10:37:09 AM11/12/10
to
Le 12/11/10 15:42, Aldo M. a écrit :
> Voici mon problème, a priori la solution n'est pas simple.
>
> L'utilisateur doit choisir une date à l'aide de trois champs select dans
> un formulaire (trois listes déroulantes à choix forcés, donc).
>
> Je veux récupérer la date du jour et attribuer dynamiquement les valeurs
> du jour par défaut aux select.
>
> C'est-à-dire mettre l'attribut "selected" dans le bon "option".

>
> Avec du Javascript je suppose,

No, ce serait mieux avec du php (ou autre langage côté serveur)

mais comment ?

function laDate() {
var f = document.forms[0].elements,
j = f['jour'],
m = f['mois'],
a = f['an'],
d = new Date(),
MaJ = function(s, D) {
var n = s.length;
while(n--)
s.options[n].selected =
(s.options[n].value == D)? true : false;
};
MaJ(j, d.getDate());
MaJ(m, d.getMonth()+1);
MaJ(a, d.getFullyear());
}
window.onload = laDate;

<form>
<select name="jour">
<option value="01"> 1</option>
<option value="02"> 2</option>
.../...
<option value="31">31</option>
</select>

<select name="mois">
<option value="01">janvier</option>
<option value="02">février</option>
.../...
<option value="12">décembre</option>
</select>

<select name="an">
<option value="2001">2001</option>
<option value="2002">2002</option>
.../...
<option value="2012">2012</option>
</select>
</form>

--
Stéphane Moriaux avec/with iMac-intel

Aldo M.

unread,
Nov 12, 2010, 10:52:33 AM11/12/10
to
Le 12/11/2010 16:25, Olivier Miakinen a ï¿œcrit :

>>
>
> Tu peux le faire soit en PHP (en mettant l'attribut selected directement
> ᅵ l'OPTION qui convient),

C'est mieux ï¿œa oui. Mais (cf plus bas) la syntaxe de l'exemple de SAM
n'est pas apprï¿œciï¿œe du tout par mon serveur.

> soit en JavaScript (en changeant l'attribut
> selected aprï¿œs coup). Attention que la date risque de ne pas ï¿œtre la
> mᅵme, mᅵme si l'ordinateur du visiteur est ᅵ l'heure (je suppose que le
> serveur y est forcᅵment), selon le fuseau horaire et la proximitᅵ ou
> non de minuit.

Oui, mais ï¿œa n'a aucune importance vï¿œritable, vu que c'est juste pour
caler les select sur une valeur au dï¿œbut et avant sï¿œlection par
l'utilisateur.

> Cela ï¿œtant dit, qu'est-ce que tu ne sais pas faire ?
>
> En JavaScript :
> var maintenant = new Date();
> var jour = maintenant.getDate();
> var mois = maintenant.getMonth();
> var annee = maintenant.getFullYear();
>
> En PHP :
> http://fr.php.net/manual/fr/function.date.php


C'est ce que je fais a priori (j'utilise moi aussi une var "maintenant",
drï¿œle). Mais ï¿œa marche pas.

En PHP l'exemple de SAM plante juste sur mon serveur, il n'aime pas la
dï¿œclaration de variable entre autres...

Voici la page incriminï¿œe, si vous avez le temps d'en perdre...
http://www.idiomatique.org/serafim/

--
Aldo M.

Olivier Miakinen

unread,
Nov 12, 2010, 10:56:24 AM11/12/10
to
Le 12/11/2010 16:37, SAM a écrit :
>>
>> Avec du Javascript je suppose,
>
> No, ce serait mieux avec du php (ou autre langage côté serveur)
>
> mais comment ?
>
> [...]

>
> <form>
> <select name="jour">
> <option value="01"> 1</option>
> <option value="02"> 2</option>
> .../...
> <option value="31">31</option>
> </select>

$cejour = date("d");
for ($jour = 1; $jour <= 31; $jour++) {
$jzero = sprintf("%02d", $jour); // "01", "02", ... "31"
$jblanc = sprintf("%2d", $jour); // " 1", " 2", ... "31"
if ($jzero == $cejour) {
echo "\t<option value='$jzero' selected>$jblanc</option>\n';
} else {
echo "\t<option value='$jzero'>$jblanc</option>\n';
}
}

Olivier Miakinen

unread,
Nov 12, 2010, 11:07:08 AM11/12/10
to
Le 12/11/2010 16:52, Aldo M. a écrit :
>>
>> Tu peux le faire soit en PHP (en mettant l'attribut selected directement
>> à l'OPTION qui convient),
>
> C'est mieux ça oui. Mais (cf plus bas) la syntaxe de l'exemple de SAM
> n'est pas appréciée du tout par mon serveur.

Je ne suis pas surpris. SAM est *le* spécialiste mondial de
fr.comp.lang.javascript et il ne fait pas mystère de ses
difficultés avec PHP, aussi il y a toutes les chances que
son exemple soit plus apprécié par ton navigateur que par
ton serveur. ;-)

> En PHP [...]

J'ai répondu à l'article de SAM avec un bout de code en PHP
correspondant à son code en JavaScript pour le jour du mois.
Y a plus qu'à faire la même chose avec le mois et l'année.

P.-S.: Un grand merci pour la correction de ton adresse.

Cordialement,
--
Olivier Miakinen

Aldo M.

unread,
Nov 12, 2010, 11:11:45 AM11/12/10
to
Le 12/11/2010 17:07, Olivier Miakinen a écrit :
>
> J'ai répondu à l'article de SAM avec un bout de code en PHP
> correspondant à son code en JavaScript pour le jour du mois.
> Y a plus qu'à faire la même chose avec le mois et l'année.
>
> P.-S.: Un grand merci pour la correction de ton adresse.
>
> Cordialement,


Bon, de mon côté j'ai compris d'pù venait mon erreur. Mes essais étaient
bons, mais ils n'étaient lancés qu'après avoir cliqué sur le calendrier
(ce qui est normal). J'ai séparé le script JS de ce "trigger" et il se
lance désormais au lancement de la page. Et ça marche ! Mais je pense
que c'est plus "léganté en PHP donc je vais m'y coller, merci beaucoup.


--
Aldo M.

Olivier Miakinen

unread,
Nov 12, 2010, 11:15:55 AM11/12/10
to
Le 12/11/2010 17:11, Aldo M. a écrit :
>
> [...] je pense que c'est plus élégant en PHP donc je vais m'y coller

Soit dit en passant, puisque tu réclames une adresse de courriel pour la
réponse, j'espère que tu acceptes les adresses « plussées » telles
que la mienne (om+...@miakinen.net).

Pour info : <http://faqfclphp.free.fr/#rub5.3>.

Cordialement,
--
Olivier Miakinen

Aldo M.

unread,
Nov 12, 2010, 11:22:31 AM11/12/10
to

Intéressant, merci ;-)

--
Aldo M.

SAM

unread,
Nov 12, 2010, 6:11:11 PM11/12/10
to
Le 12/11/10 16:52, Aldo M. a ï¿œcrit :

>
> En PHP l'exemple de SAM plante juste sur mon serveur, il n'aime pas la
> dï¿œclaration de variable entre autres...

Jamais je n'ai donnᅵ d'exemple en php !

J'ai rᅵpondu ᅵ :
ᅵ mais comment ? ᅵ
qui venait aprï¿œs :
ᅵ Avec du Javascript je suppose, ᅵ

La fonction ï¿œtait donc une fonction JavaScript
ᅵ faire interprᅵter cᅵtᅵ navigateur.

> Voici la page incriminï¿œe, si vous avez le temps d'en perdre...
> http://www.idiomatique.org/serafim/

Argghh!
AMTS ne dessert pas mon village !
Scandhï¿œl !

Bon ... ᅵa a l'air d'ᅵtre tombᅵ en marche le prᅵ-choix de date.

--
Stï¿œphane Moriaux avec/with iMac-intel

Vincent

unread,
Nov 14, 2010, 12:00:40 PM11/14/10
to
Le 13/11/2010 00:11, SAM a écrit :
> Le 12/11/10 16:52, Aldo M. a écrit :

>> Voici la page incriminée, si vous avez le temps d'en perdre...
>> http://www.idiomatique.org/serafim/

Devriez sécuriser votre site.

www.idiomatique.org donne accès au listing des répertoires !

Aldo M.

unread,
Nov 14, 2010, 4:16:25 PM11/14/10
to

Plus maintenant, merci !

--
Aldo M.

0 new messages