Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

11 réponses
Avatar
Aldo M.
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.

10 réponses

1 2
Avatar
Olivier Miakinen
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."
ou :
From: "Aldo M."
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
Avatar
SAM
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
Avatar
Aldo M.
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.
Avatar
Olivier Miakinen
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';
}
}
Avatar
Olivier Miakinen
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
Avatar
Aldo M.
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.
Avatar
Olivier Miakinen
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+).

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

Cordialement,
--
Olivier Miakinen
Avatar
Aldo M.
Le 12/11/2010 17:15, Olivier Miakinen a écrit :
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+).

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

Cordialement,



Intéressant, merci ;-)



--
Aldo M.
Avatar
SAM
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
Avatar
Vincent
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 !
1 2