J'avais exactement le même pb que toi.
Je l'ai résolu avec un tableau comme suit :
Sur la page d'enregistrement, si le controle captcha n'est pas bon, je dimensionne un tableau fonction du nombre d'éléments que j'ai à récupérer :
1 2 3 4
| Dim TabForm() : i=0
for each obj in request.form
i=i+1
next |
Maitennat que je sais combien il y en a, je les récupère.
1 2 3 4 5 6 7 8
| redim TabForm(i-1,1)
i=0
for each obj in request.form
TabForm(i,0)=obj 'on récupère le nom de l'objet
TabForm(i,1)=request.Form(obj) 'on récupère sa valeur
i=i+1
next
session("Formulaire")=TabForm |
et hop redirect vers mon formulaire
Sur mon formulaire, je teste l'existence ou non d'un tableau de session formulaire type et si oui, je bascule mon tableau de session dans un tableau de variables, je le parcoure et je réaffecte ses valeurs à des variables, du genre :
1 2 3 4 5 6 7 8 9 10 11 12
| if IsArray(Session("Formulaire")) then
TabData = session("Formmulaire")
for i = 0 to Ubound(TabData)
select case TabData(i,0)
case "nom": nom =TabData(i,0)
case "email" : email=TabData(i,1)
case "chk" : chk=TabData(i,1)
...
end select
next
session.contents.remove("Formulaire") 'IMPORTANT DE VIDER SES SESSIONS INUTILES
end if |
Je n'ai plus qu'à mettre les valeurs dans la propriété value de mes inputs :
<input type="text" name="nom" value="<%=nom%>">
Dans ton cas à toi
1 2 3
| <input type="checkbox" <%if chk=1 then response.write "checked"%> name="chk" value="1">
<input type="checkbox"<%if chk=2 then response.write "checked"%> name="chk" value="2">
<input type="checkbox" <%if chk=3 then response.write "checked"%> name="chk" value="3"> |
Le tout est joué!
Partager