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 :

Comment sortir d'une fonction sans nom ?


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 56
    Points : 38
    Points
    38
    Par défaut Comment sortir d'une fonction sans nom ?
    Bonjour à tous,

    Je n'ai pas trouvé la réponse dans search, mais je pense qu'elle doit y être, désolé...

    Voilà mon probème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    xhr.onreadystatechange = function()
    {
    	if(xhr.readyState == 4 && xhr.status == 200)
    	{
    		leselect = xhr.responseText;
    		document.getElementById('pseudoerror').innerHTML = leselect;
     
    		var leselectt = trim(leselect);
    		if(leselectt == '' && error1 == '') return '';
    		else return 'error';
    	}
    }
    Ma question est la suivante : comment sortir de la fonction pour récupérer ma valeur error ?

    Normalement toute fonction à un nom et il suffit de faire :
    var x = essai();
    Si je donne un nom à cette fonction et fait ceci => erreur.

    Vous auriez une solution à me donné ?

    Merci d'avance.

  2. #2
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par kriekbellevue Voir le message
    Vous auriez une solution à me donné ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else uneVariableGlobale = 'error';
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else document.getElementById('un_id').value = 'error';
    ou mieux (pour ne pas avoir à "écouter" la variable globale qui récupère l'erreur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else TonTraitementDeGestionDErreur();
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 56
    Points : 38
    Points
    38
    Par défaut
    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
    var err = 'refezfgd';
    function verif_insc2()
    { 	
    	var pseudo = document.form1.login.value;
    	var username = document.form1.username.value;
    	var password = document.form1.password.value;
    	var email = document.form1.email.value;
     
    	var error1 = verif_insc(pseudo, username, password, email);
     
    	function erreur()
    	{
    		err = 'ok';
    		alert(err);
    	}
     
    	var xhr = getXhr();
    	if(trim(pseudo) != '')
    	{
    		xhr.onreadystatechange = function()
    		{
    			if(xhr.readyState == 4  && xhr.status == 200)
    			{
    				leselect = xhr.responseText;
    				document.getElementById('pseudoerror').innerHTML = leselect;
     
    				var leselectt = trim(leselect);
    				if(leselectt != '') erreur();
    			}
    		}
    	}
    	xhr.open("POST","insc_pseudo.php?pseudo=" + pseudo,true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send("pseudo=" + pseudo);	
    	alert("global = " + err);
     
    	return false;
    }

    le premier alert me donne ok et le 2ème me donne refezfgd. Pourtant il passe bien par ma fonction, mais il ne veut pas garder la valeur. C'est bien comme ça que l'on déclare une variable globale ? Même si ici une locale suffit, car on ne sort pas de la fonction verif_insc2.

    J'ai vraiment besoin de cette variable.

  4. #4
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par kriekbellevue Voir le message
    Pourtant il passe bien par ma fonction, mais il ne veut pas garder la valeur.
    Oui, mais avec ton appel Ajax en asynchrone
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("global = " + err);
    s'exécute avant d'avoir reçu la réponse d'Ajax

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 56
    Points : 38
    Points
    38
    Par défaut
    Argh, pas pensé à ça, donc je n'ai aucune chance dans cette voix. Je vais devoir oublier l'ajax et revenir à un bon vieux POST .
    Ou alors y'a moyen autrement ?

    Merci E.Bzz de m'aider, c'est cool.

  6. #6
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par kriekbellevue Voir le message
    Ou alors y'a moyen autrement ?
    Oui, en faisant un appel synchrone
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("POST","insc_pseudo.php?pseudo=" + pseudo,false);
    Par contre, le onreadystatechange ne fonctionnera plus (de la même manière).
    Code readystate est retourné en même temps que la réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    xhr_object.open("POST", lien, false);
    xhr_object.send(param);
    if(xhr_object.readyState == 4) {
    .....
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 56
    Points : 38
    Points
    38
    Par défaut
    Yeah ça marche.

    Un tout grand merci E.Bzz... "Balèze le gars"

Discussions similaires

  1. Sortir d'une fonction sans recharger la page
    Par alfouine dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 10/03/2011, 11h36
  2. Réponses: 10
    Dernier message: 27/01/2010, 14h39
  3. Comment sortir d'une fonction?
    Par Kobe70 dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 13h44
  4. Comment sortir d'une fonction ?
    Par serialkilled dans le forum Langage
    Réponses: 3
    Dernier message: 16/12/2006, 12h30
  5. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42

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