Problème avec un return

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec un return

par Tictac » 12 juin 2006, 12:43

Merci bcp naholyr

J'ai donc envoyé la valeur dans un hidden field et je la récupère ensuite

Merci , je viens d'apprendre qqch de très utile !!

par Ryle » 12 juin 2006, 12:17

Ah bah vi en fait...
bien vu naholyr :pouce:

par naholyr » 12 juin 2006, 11:16

Tu ne peux pas faire de return dans la fonction onReadyState d'un objet XMLHttpRequest, ça ne sert à rien.

Cette fonction va être exécutée en parallèle de ton code, et son résultat sera donc retourné dans le vent, nulle part tu n'auras de façon de récupérer. Il faut gérer des variables globales, ou l'encapsuler dans un objet.

par Ryle » 12 juin 2006, 10:59

Sans aller plus loin dans le code :

Code : Tout sélectionner

return(alert(user_exist))
ceci retourne le résultat de la fonction alert() ... fonction qui ne retourne aucun résultat et se contente d'afficher dans une fenêtre d'alerte le message passé en argument... donc marchera pas :)

Il vaut mieux découper ainsi :

Code : Tout sélectionner

alert(user_exist); return user_exist;
Maintenant le "undefined" signifie que l'élément n'est pas défini.. il ne te reste donc qu'à tester un par un tes éléments pour savoir à partir d'où cela commence à clocher :

Code : Tout sélectionner

alert(root_node.firstChild.data); alert(root_node.firstChild); alert(root_node); alert(xmldoc.getElementsByTagName('user').item(0)); alert(xmldoc.getElementsByTagName('user').item); alert(xmldoc.getElementsByTagName('user')); ...
Vérifie également le code xml, etc.

par Tictac » 12 juin 2006, 10:11

AU SECOURS !!! :cry:

Problème avec un return

par Tictac » 11 juin 2006, 22:08

Bonjour , j'ai un soucis pour lequel j'ai déjà chercher bcp et ne trouvant pas de solution , je me suis tout de même décidé à demander

j'ai une fonction qui appel une autre fonction .De cette fonction appelée , je voudrais récupérer une valeur via le return .

J'ai essayé de faire un return(alert(user_exist))! ca fonctionne mais quand je veux récupérer la valeur dans la fonction appelante , il me met "undefined" !

Voice code de la fonction appellante =>
var user_exist_return = makeRequest('user_login='+login+'&user_email='+email,'user_exist.php');
	if(user_exist_return == 1)
		{
		valid--;
		document.getElementById('login').className = "input_error";
		document.getElementById('login_error').innerHTML = " <img src=\"images/noacces.gif\" border=\"0\" align=\"absmiddle\"> Login d&eacute;j&agrave; utilis&eacute;";	
		}
Le code de la fonction makeRequest
function makeRequest(donnee,page) {
        var XhrObj = false;

		if(document.all) 
			{ 
				try {
               XhrObj = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    XhrObj = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
			}//fin if 
		else 
			{ 
				//Mozilla 
				var XhrObj = new XMLHttpRequest();
            if (XhrObj.overrideMimeType) {
                XhrObj.overrideMimeType('text/xml');
                // Voir la note ci-dessous à propos de cette ligne
            	}
			}//fin else 
      

        if (!XhrObj) {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
		
		 XhrObj.onreadystatechange = function() 
			{ 
				if (XhrObj.readyState == 4) 
					{
					if(XhrObj.status == 200)
						{
						var xmldoc = XhrObj.responseXML;
						var root_node = xmldoc.getElementsByTagName('user').item(0);
						var user_exist = root_node.firstChild.data ;
						return(user_exist);
						}
					}	
			}     
	
 
		//Ouverture du fichier en methode GET 
		XhrObj.open("GET", page+"?"+donnee ,true); 
        XhrObj.send(null);
	
		
    }
Merci d'avance pour votre aide