une FORM transmise efface les champs. Comment résoudre ?

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
LPGC

une FORM transmise efface les champs. Comment résoudre ?

Message par LPGC »

bonjour, :D

j'ai une forme en plusieurs parties :

form
1- pseudo
2- mot de passe
3- signalétique
/form

Je voudrais transmettre le pseudo dès que je quitte le champs correspondant
pour vérifier s'il est libre ou déjà utilisé.
Valider ensuite de la même façon le mot de passe.
Et enfin transmettre la forme en entier en cliquant sur un bouton.

Comment ne pas perdre les informations déjà présentes sur la forme
quand je transmets le pseudo ou le mot de passe :?:
Et laisser le focus où il était avant d'envoyer la forme :?:

Comme il y a un mot de passe, je voudrais ne pas avoir de traces en local

Merci pour l'aide, je trouve pas de solution évidente :roll:

Christian



Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: une FORM transmise efface les champs. Comment résoudre

Message par calimo »

LPGC a écrit :Comment ne pas perdre les informations déjà présentes sur la forme
quand je transmets le pseudo ou le mot de passe :?:
Et laisser le focus où il était avant d'envoyer la forme :?:
Tu dois utiliser JavaScript.
Pour le pseudo, tu fais un script AJAX (une recherche dans ton moteur préféré t'en dira plus) qui fait une requête sur un script côté serveur ayant lui-même chercher si l'utilisateur existe.

Pour le mot de passe, une simple vérification javascript suffit il me semble.

À appliquer sur l'évènement onBlur (perte de focus du champ de formulaire).

Bien entendu, tu dois prendre en compte le cas où l'utilisateur n'a pas javascript activé. Dans ce cas, il te faudra faire également l'intégralité de la vérification côté serveur (deuxième validation). Ensuite, si tu dois réafficher le formulaire, tu mets le contenu correct dans l'attribut "value" des champs input (en perl/cgi ça se fait automatiquement, en php c'est plus compliqué) :wink:
LPGC

Message par LPGC »

:D merci Calimo, je me suis pas mal inspiré de tes conseils :idea:

j'utilise pas ajax bienque c'est le mieux parceque j'ai déjà un peu travaillé avec :
http://www.dvdlib.be/dvdpreview/dvdnew6.asp

et que je n'y connais rien en FORM :lol:
:idea: j'ai trouvé quelques trucs mais c'est pas top :!:

Code : Tout sélectionner

<form name="identform" action="login.asp" method="post" onmouseout="resetfocus();">
<input type="hidden" name="xFocus" id="xFocus" value="0" size="20">
<input type="text" name="txtIdent" id="txtIdent" onBlur="submitform(1);" onfocus="getfocus(this);" size="20">
<input type="password" name="txtPwd" id="txtPwd" onBlur="submitform(2);" onfocus="getfocus(this);" size="20">
.... </form>
et dans le onload de la page : <body onload="bkfillform();">
je reremplis les champs avec du javascript après le submit:

Code : Tout sélectionner

<script language="JavaScript" type="text/javascript">
var xfocus = '<%=Request.Form("xFocus")%>';
function bkfillform() {
<%
dim frm
for each frm in Request.Form 
  Response.Write "document.getElementById(""" & frm & """).value = """ & request(frm) & """;" & vbCrlf
next
%>
if (xfocus != '') {
	var ofocus = document.getElementById(xfocus);
	ofocus.focus();
	ofocus.select();
}
}
</script>
çà fonctionne pas mal, mais le password est visible dans le source et le focus fait un peu ce qu'il veut...
Je n'ai pas encore trouvé pour remplir directement la FORM à partir du serveur ( ASP )
Est ce seulement possible :?:
Merci
Christian


Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

LPGC a écrit :çà fonctionne pas mal, mais le password est visible dans le source et le focus fait un peu ce qu'il veut...
Ah ben évidemment, comment tu veux faire autrement ? :roll:
Si tu veux qu'il s'affiche, tu es bien obligé de le transmettre. Ou alors tu choisis de ne rien transmettre et de rappeler à l'utilisateur de re-remplir son mot de passe :wink:
LPGC a écrit :Je n'ai pas encore trouvé pour remplir directement la FORM à partir du serveur ( ASP )
Est ce seulement possible :?:
Comme je l'ai dit, tu dois passer ce que tu veux pré-remplir dans l'attribut value du input.
Comment on fait en ASP, je n'en sais rien, à la limite c'est même pas important, ce qui compte c'est que l'utilisateur reçoive une page dans laquelle l'attribut value est rempli avec ce qu'il faut ;-)
[url=http://www.la-grange.net/w3c/html4.01/interact/forms.html#adef-value-INPUT]Dans la description de value de la spécification HTML 4.01 du W3C[/url] il y a écrit :value = cdata [CA]
Cet attribut spécifie la valeur initiale de la commande. Celui-ci est optionnel, sauf quand l'attribut type a la valeur "radio" ou bien "checkbox".
Pour un textarea, c'est tout simplement le texte contenu à l'intérieur du textarea qui fait office de valeur initiale :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.4) Gecko/20060508 Firefox Firefox/1.5.0.4
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités