OVH Cloud OVH Cloud

liste à bornes variables (dépendent d'une autre saisie)

7 réponses
Avatar
Serge Nazarian
Bonjour,

J'ai un formulaire qui demande le numéro d'une semaine de début (entre 1 et
30) puis celui d'une semaine de fin (entre 1 et 30 aussi).

Je voudrais l'améliorer.
Je souhaite donc faire saisir le numéro de la semaine de début (entre 1 et
30) et qu'ensuite, dans les numéros proposés pour la semaine de fin, il n'y
ait QUE les numéros égaux ou supérieurs à la semaine de début.

Une amélioration me vient même à l'esprit :
On choisit une semaine début ou fin et dans les possibilités pour l'autre,
il n'y a que des choix licites.
Par exemple si je choisis 5 pour semaine de fin, je ne veux plus avoir pour
choix que 1,2,3,4 et 5 dans la semaine de début.
Si je choisis 29 comme semaine de début, seuls 29 et 30 doivent être
proposés pour la semaine de fin.

Ceci est-il possible ?

Merci pour toute aide.
Cordialement,
--
Serge Nazarian

Cliquez ci dessous pour une réponse personnelle :
http://cerbermail.com/?CBBJUUv0pN

7 réponses

Avatar
R12y
On Fri, 31 Mar 2006 07:58:30 +0200, Serge Nazarian wrote:

Ceci est-il possible ?


Une solution qui inclu un rechargement de la page me semble assez facile
à implémenter...

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

Avatar
CrazyCat
R12y wrote:
Ceci est-il possible ?
Une solution qui inclu un rechargement de la page me semble assez facile

à implémenter...


Oui, mais une solution de génération des options en JS me semble aussi
possible.
Je bosse dessus et envoit le script en fin de matinée.

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net


Avatar
CrazyCat
Voici ce que j'ai vite fait.
Pour ne pas trop compliquer, je colore les champs "inutilisables" en
rouge, tu peux mettre des vérifications plutôt ou traiter comme tu veux.

Ceci est juste un départ :)

<html>
<head>
<script language="javascript">
var gdebut = 1
var gfin = 30;
var sdebut = 1;
var sfin = 30;

function initsel() {
mydebut = document.getElementById("debut");
myfin = document.getElementById("fin");
mydebut.options.length = 0;
myfin.options.length = 0;
for (i=gdebut; i<=gfin; i++) {
dadded = new Option(i,i - 1);
mydebut.options[i - 1] = dadded;
if (i >= sfin) {
mydebut.options[i - 1].style.color = 'red';
}
}
for (i=gdebut; i<=gfin; i++) {
sadded = new Option(i,i - 1);
myfin.options[i - 1] = sadded;
if (i <= sdebut) {
myfin.options[i - 1].style.color = 'red';
}
}
mydebut.options[sdebut].selected = true;
myfin.options[sfin - 1].selected = true;
}

function valid(myselect) {
asel = document.getElementById(myselect.id)
if (myselect.id == "debut") {
sdebut = asel.options[asel.selectedIndex].value;
}
if (myselect.id == "fin") {
sfin = asel.options[asel.selectedIndex].value;
}
initsel();
}
</script>
</head>
<body onload="initsel();">
<select id="debut" onchange="valid(this);"></select>
<select id="fin" onchange="valid(this);"></select>
</body>


--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net
Avatar
ASM
Bonjour,

J'ai un formulaire qui demande le numéro d'une semaine de début (entre 1
et 30) puis celui d'une semaine de fin (entre 1 et 30 aussi).


ce principe me semble dangereux : il y a 2 sortes de calcul des semaines
dans l'année.
J'ai déjà raté des rendez-vous parce que nos agendas ne commençaient pas
à la même semaine.

de plus c'est curieux ça : 30 semaines ?

Je voudrais l'améliorer.
Je souhaite donc faire saisir le numéro de la semaine de début (entre 1
et 30) et qu'ensuite, dans les numéros proposés pour la semaine de fin,
il n'y ait QUE les numéros égaux ou supérieurs à la semaine de début.


function select30(selecteur,debut,fin) {
selecteur.length = 0;
for(var i=(-1+debut);i<fin;i++) {
var n = +1+i;
var o = new Option(n,n);
selecteur.options[selecteur.length] = o;
}
}

<select name"sel_1"
onchange="var k = this.options.selectedIndex;
select30('sel_2',+1+k,30);"
blabla>

Une amélioration me vient même à l'esprit :
On choisit une semaine début ou fin et dans les possibilités pour
l'autre, il n'y a que des choix licites.
Par exemple si je choisis 5 pour semaine de fin, je ne veux plus avoir
pour choix que 1,2,3,4 et 5 dans la semaine de début.


<select name"sel_2"
onchange="var k = this.options.selectedIndex;
select30('sel_1',1,+1+k);"
blabla>

Si je choisis 29 comme semaine de début, seuls 29 et 30 doivent être
proposés pour la semaine de fin.


Là, ça va être très très dur ... puisqu'il s'arrête à 5 maintenant !


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM
Voici ce que j'ai vite fait.
Pour ne pas trop compliquer,


pour du pas compliqué ce n'est pas du simple simple non plus :-)

Je suis touj très étonné qu'on passe par le gEBI dans le traitement de
formulaires (dont usuellement les éléments portent un nom et pas
obligatoirement d'id) alors qu'on a à dispo tt un tas de fonctions
simples et directes en JS qui ne mettent pas en branle le DOM.

Nota :
tous les navigateurs n'admettent pas de traitement de couleurs (styles)
dans les éléments de formulaires.


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
CrazyCat
ASM wrote:
Pour ne pas trop compliquer,
pour du pas compliqué ce n'est pas du simple simple non plus :-)



Mais qui peut le plus peut le moins :)
Tu devrais savoir, avec le temps, que j'aime faire des scripts qui
puissent servir de tutoriaux, donc qui exploitent un maximum de choses.

Je suis touj très étonné qu'on passe par le gEBI dans le traitement de
formulaires (dont usuellement les éléments portent un nom et pas
obligatoirement d'id) alors qu'on a à dispo tt un tas de fonctions
simples et directes en JS qui ne mettent pas en branle le DOM.


Alors, deux points:
1) on peut très bien utiliser le gEBN si on préfère
2) j'aurais aussi pu envoyer 'this' et en faire un eval(), mais je suis
feignant ;)

Nota :
tous les navigateurs n'admettent pas de traitement de couleurs (styles)
dans les éléments de formulaires.


le changement de style était la première chose qui m'est venu à l'esprit :)

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net


Avatar
R12y
On Fri, 31 Mar 2006 12:07:25 +0200, ASM wrote:

J'ai un formulaire qui demande le numéro d'une semaine de début (entre 1
et 30) puis celui d'une semaine de fin (entre 1 et 30 aussi).


ce principe me semble dangereux : il y a 2 sortes de calcul des semaines
dans l'année.
J'ai déjà raté des rendez-vous parce que nos agendas ne commençaient pas
à la même semaine.


Et puis d'un point de vue statistique, beaucoup de logiciels de travail en
groupe (du moins ceux que j'ai rencontré) préfèrent traiter ça server-side.

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum