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

faire un "Wizard" pour formulaire

17 réponses
Avatar
Christophe, elitemediacompany.com
Salut,

Je souhaite faire un Wizard sur un formulaire (un formulaire par étapes)
J'avais fait ca au départ avec Dojo qui possède un widget préconcu pour ca,
mais Dojo semble entrer en conflit avec Scriptaculous et Prototype et j'ai
besoin de ces librairies pour d'autres trucs sur le meme site. De plus je ne
veux pas trop allourdir le site de frameworks et je trouve Dojo relativement
lourd.

Donc, auriez vous une idée de comment je peux faire ca, une adresse web ou
autre car la je nage... Si jamais, comme prototype et scriptaculous sont
deja installés, ca serait encore plus cool d'avoir un script qui les
utilise.

Merci

Christophe

10 réponses

1 2
Avatar
ASM
Salut,

Je souhaite faire un Wizard sur un formulaire (un formulaire par étapes)


qquechose dans ce genre ?

<script type="text/javascript">
var Iput = new Array(
'text,nom,Nom : ',
'text,prenom,Prénom : ',
'radio,genre,M : ,Mme : ,Mlle : '
)
var idx = 0;
function nouvo() {
quoi = Iput(idx).split(',');
var p = document.createElement('p');
for(var i=quoi.length-1;i>2) {
p.innerHTML += quoi[2];
var i = document.createElement('input');
i.name = quoi[1];
i.type = quoi[0]=='text' '' : quoi[0];
p.appendChild(i);
}
document.getElementById('ajout').appendChild(p);
}
</script>

<form blabla>
<div id="ajout"></div>
<input type=submit value=GO>
</form>
<button onclick="nouvo()">Nouvelle entrée</button>


mini-demo :
http://stephane.moriaux.perso.orange.fr/truc/form_auto

sinon pour de l'insertion par groupes tous faits le HTTPRequest ?

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Christophe, elitemediacompany.com
mini-demo :
http://stephane.moriaux.perso.orange.fr/truc/form_auto

sinon pour de l'insertion par groupes tous faits le HTTPRequest ?


Pas mal ton script, mais pas ce que je cherche non.
En fait ce que je cherche c'est a diséquer 1 grand formulaire en plusieurs
étapes. Il y aurait donc un grand formulaire incluant 3 ou 4 DIV cachés et a
chaque demande de passage a l'étape suivant, le 1er DIV se cache et le
second apparait et ainsi de suite. De plus, il faut une apparition
conditionnelle du DIV suivant. C'est a dire que si les champs du formulaire
du 1er DIV ne sont pas remplis, ca ne passe pas a la seconde étape.

En fait, je l'ai ici en fonctionnement (Site en développement et donc non
fonctionnel)
http://elitemediacompany.com/nouveau-site/index.php?page=promotions&promo_id=1#commande

Mais la il est fait avec un widget Dojo, et je cherche une solution beaucoup
plus legere que cette énorme librairie. Comme je l'ai précisé, si quelqu'un
a une solution avec Prototype ou scriptaculous, la ca serait l'idéal !

Christophe

Avatar
ASM
mini-demo :
http://stephane.moriaux.perso.orange.fr/truc/form_auto

sinon pour de l'insertion par groupes tous faits le HTTPRequest ?


Pas mal ton script, mais pas ce que je cherche non.


comme dit, pour des groupes (d'input) ou morceaux de form
- HTTPRequest
ou
- tout charger et révéler au besoin les tronçons
auquel cas : quel interet ?

En fait ce que je cherche c'est a diséquer 1 grand formulaire en
plusieurs étapes. Il y aurait donc un grand formulaire incluant 3 ou 4
DIV cachés et a chaque demande de passage a l'étape suivant, le 1er DIV
se cache et le second apparait et ainsi de suite.


Ça, tt de même, ce n'est pas trop compliqué !

<script type="text/javascript">
onload = function() {
D = document.forms[0].getElementsByTagName('div');
for(var i=1;i<D.length;i++) D[i].style.display='none';
fdiv = 0;
hideShow = function() {
if(fdiv<(-1+D.length)) {
D[fdiv].style.display = 'none';
fdiv ++;
D[fdiv].style.display = 'block';
}
}
verif = function(quoi) {
quoi = quoi.getElementsByTagName('*');
for(var i=0;i<quoi.length;i++)
if(quoi[i].tagName.toLowerCase()!='p' &&
quoi[i].value.length<1) {
alert('remplir champ : '+quoi[i].name);
quoi[i].focus();
quoi[i].select();
return false;
}
hideShow();
}
};
</script>
<form>
<div> blabla 1
<input type="button" onclick="verif(this.parentNode);"
value="continuer">
</div>
<div> blabla 2
<input type="button" onclick="verif(this.parentNode);"
value="continuer">
</div>
<div> blabla 3
<input type="button" onclick="verif(this.parentNode);"
value="continuer">
</div>
<div> blabla 4
<input type="button" onclick="verif(this.parentNode);"
value="continuer">
</div>
<p><input type="submit" value=GO>
</form>


Mais la il est fait avec un widget Dojo, et je cherche une solution
beaucoup plus legere que cette énorme librairie. Comme je l'ai précisé,
si quelqu'un a une solution avec Prototype ou scriptaculous, la ca
serait l'idéal !


désolé connais pô ces trucs ingérables.
et mon 'onload' va pas plaire à celui de tes biblis ...

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Christophe, elitemediacompany.com
Ça, tt de même, ce n'est pas trop compliqué !


Ouais, surement, mais moi je suis une bite en JS (je sais lire et
interpreter un script, mais l'ecrire moi meme oublie !)
Faudrait que je m'y mette un jour surtout que je touche pas mal en PHP et
c'est relativement proche.

Christophe

Avatar
Christophe, elitemediacompany.com
oublié de dire, je teste ton truc demain et je te dirai le résultat, merci

Christophe
Avatar
ASM
oublié de dire, je teste ton truc demain et je te dirai le résultat, merci


avant de tester chez toi,
mini démo :
http://stephane.moriaux.perso.orange.fr/truc/form_divs_auto


--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Christophe, elitemediacompany.com
avant de tester chez toi,
mini démo :
http://stephane.moriaux.perso.orange.fr/truc/form_divs_auto


Super cool de ta part ! Ca marche bien en plus.
Merci, je t'enverrai le lien sur le site final en fonctionnement.

Christophe

Avatar
ASM
avant de tester chez toi,
mini démo :
http://stephane.moriaux.perso.orange.fr/truc/form_divs_auto


Super cool de ta part ! Ca marche bien en plus.


comme quoi, on n'a pas besoin de biblis de 15 km
pour faire qques effets de dynamisme

Merci, je t'enverrai le lien sur le site final en fonctionnement.


La verif y est dans le simplissime :
ne vérifie que les inputs avec value
(donc ni radio-bouton ni checkbox ni select)

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Christophe, elitemediacompany.com
comme quoi, on n'a pas besoin de biblis de 15 km
pour faire qques effets de dynamisme


C'est bien pour ca que je voulais shooter Dojo (plus de 200Ko a charger dès
le départ car quel que soit son utilisation tu charges une bonne partie de
la librairie)

En plus, elle ne m'aurait servi qu'a cela ! Tu vois l'économie de bande
passante contre ton script qui fait 2 Ko a tout casser.

La verif y est dans le simplissime :
ne vérifie que les inputs avec value
(donc ni radio-bouton ni checkbox ni select)


Oui, j'ai vu, mais ca je sais faire quand meme donc au besoin je modifierai.

Christophe

Avatar
ASM

Tu vois l'économie de bande
passante contre ton script qui fait 2 Ko a tout casser.


Le script lui-même : 606 octets très exactement
réductible à 510 octets

--
Stephane Moriaux et son [moins] vieux Mac

1 2