IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

valider un formulaire sans le réinitialiser


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Par défaut valider un formulaire sans le réinitialiser
    Bonjour,
    J'ai un formulaire asp qui contient entre autres, 4 listes déroulantes à choix multiples. Le formulaire pointe sur la même page (sur lui même quoi).
    J'ai une requête qui est créé par la concaténation des selections des trois premieres listes, et dont le résultat va remplir la dernière.

    Pour être plus clair:
    liste1=liste de département
    liste2=liste de formation
    liste3=liste de financeurs des formations
    liste4=liste des porganismes de formations

    ma liste d'organismes de formations est restreinte en fonction des choix des 3 premieres listes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select libelleOrganisme from actionFormation where département in (liste1(1), liste1(2), ...) and libelleFormation in (liste2(1), liste2(2), ...) and ...
    Le souci c'est que cette troisième liste n'apparait et n'est renseignée qu'après validation du formulaire, et au même moment le formulaire est réinitialisé, et donc les choix de mes utilisateurs ne sont pas sauvegardés.
    Je voudrais qu'après validation les lignes de mes listes reste cochées.

    J'ai voulu dans un premier temps vérifier avec les variables retournées par mon formulaire comme suit;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <select name="liste2" multiple size="5" style="width:250px ">
    	<option value="-Tous-" selected>-Tous-</option>
    	<%while not formation.eof%>
    		<option value="<%=formation("LibelleFormation")%>"
    		<%n=Request.QueryString("liste2").Count
    			For a = 1 to n	
    				if formation("LibelleFormation")=Request.QueryString("liste2")(a) then
    					response.write("selected")
    				end if					
    			Next
    		%>
    		><%=formation("LibelleFormation")%>	</option>
    	<%formation.movenext
    	wend%>
    </select>
    le souci c'est que certaines de mes listes contiennent plus de milles enregistrements et ne cessent de s'agrandir, et si à chaque lignes je doit vérifier que cette derniere se trouve bien dans la liste des lignes sélectionnées... je vous raconte pas le temps d'attente. Et je vous rappel que j'ai trois listes! il suffit que l'utilisateur en sélectionne plusieurs et c'est le drame! lol!

    C'est pourquoi je cherchais un moyen de valider un formulaire sans le réinitialiser, ça serait plus simple. J'ai chercher sur le net, mais j'ai rien trouvé de satisfaisant, alors si quelqu'un peut m'aider...


    Merci.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par mohcultiv Voir le message
    C'est pourquoi je cherchais un moyen de valider un formulaire sans le réinitialiser, ça serait plus simple. J'ai chercher sur le net, mais j'ai rien trouvé de satisfaisant, alors si quelqu'un peut m'aider...
    Pour envoyer les infos de ton form sans recharger la page, il y a Ajax ...

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 198
    Par défaut
    Alors,...
    J'ai regardé les tutoriels AJAX et en particulier un qui permetait entre autres d'éxécuter une requête sur le serveur via javascript et donc sans réinitialiser mon form.
    Apparement c'est l'objet XMLHttpRequest qui permet ceci.

    Perso je n'en avait jamaiss entendu parler avant hier soir et je ne connais rien à AJAX.

    Cependant j'ai essayer de comprendre le tuto et j'ai fait comme suit, or rien ne se passe lorsque je clique sur mon bouton, alors avec le submit mon code fonctionnait.

    voici mon code :

    fonction javascript utilisant l'objet XMLHttpRequest:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    function apercu(page) {
        var xhr;
        if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
        else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
        else {
            alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...');
            return;
        }
     
     
        var data = 'form=form3&valider=VALIDER';
    	data = data + '&operateur3=' + escape(form3.operateur3.value);
    	data = data + '&exctrdatedeb3=' + escape(form3.exctrdatedeb3.value);
    	data = data + '&operateur33=' + escape(form3.operateur33.value);
    	data = data + '&exctrdatedeb33=' + escape(form3.exctrdatedeb33.value);
    	data = data + '&refusConv=' + escape(form3.refusConv.value);
     
    	var selectBox = document.form3.selectGeo;
    	for (var i=0; i<selectBox.options.length; i++) {
    		if (selectBox.options[i].selected) {
    			data = data + '&selectGeo=' + escape(selectBox.options[i].text);
    		}		
    	}
     
    	var selectBox = document.form3.selectForm;
    	for (var i=0; i<selectBox.options.length; i++) {
    		if (selectBox.options[i].selected) {
    			data = data + '&selectForm=' + escape(selectBox.options[i].text);
    		}		
    	}
     
    	var selectBox = document.form3.selectFin;
    	for (var i=0; i<selectBox.options.length; i++) {
    		if (selectBox.options[i].selected) {
    			data = data + '&selectFin=' + escape(selectBox.options[i].text);
    		}		
    	}
    	page= page + '?' + data + ieTrick();
    	alert(page);
    	xhr.open('GET',page,true);    
        xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
     
        xhr.send(null);	
    }


    bouton permettant de valider le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" name="valider" value="VALIDER" onClick="apercu('extraction2.asp');">

    et je récupère mes variables coté asp comme si j'avais fait un submit, c'est à dire: Request.QueryString("maVariable")

    merci encore

Discussions similaires

  1. Valider un formulaire sans recharger la page
    Par .Spirit dans le forum jQuery
    Réponses: 17
    Dernier message: 21/11/2010, 02h56
  2. Réponses: 2
    Dernier message: 17/10/2009, 11h25
  3. Réponses: 2
    Dernier message: 21/06/2007, 11h10
  4. valider un formulaire sans submit
    Par mimagyc dans le forum Langage
    Réponses: 5
    Dernier message: 02/05/2007, 23h08
  5. Validation automatique de formulaire (sans clic)
    Par budiste dans le forum Langage
    Réponses: 6
    Dernier message: 13/04/2006, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo