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 :

V�rification pseudo qui ne marche pas


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Par d�faut V�rification pseudo qui ne marche pas
    Bonjour tout le monde.

    Hier j'ai fait l'acquisition du livre " Javascript" de chez MicroApplication.
    Je veux tester l'un de leurs exemple mail il me marche pas. J'ai pourtant recopi� le livre.
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <script type="text/javascript">
    	function ajaxPseudo(f){
    		var xhr_object = null;
    		if (window.XMLHttpRequest){
    			//pour Firefox
    			xhr_object = new XMLHttpRequest(); 
    			alert("Vous utilisez Firefox comme navigateur");
    		}
    		else if (window.ActiveXObject){
    			//pour IE
    			xhr_object = new ActiveXObject ("Microsoft.XMLHTTP");
    			alert("Vous utilisez IE comme navigateur");
    		}
    		else {
    			alert("Votre navigateur, c'est autre chose !");
    			return;
    		}
    		var url="pseudo.php?pseudo="+escape(f.pseudo.value)+"&amp;ville="+escape(f.ville.value)+"&amp;annee="+escape(f.anne.value);
    		xhr_object.open("GET", url, true);
    		xhr_object.open.onreadystatechange = function(){
    			if (xhr.object.readyState == 4){
    				var reponse = xhr_object.responseText
    				var regSeparateur=new RegExp(";", "g");
    				var parties=reponse.split(regSeparateur);
    				if (parties[0] == "CONTROLE_PSEUDO"){
    					var div=document.getElementById("divControlePseudo");
    					if (parties[1]=="OK"){
    						div.innerHTML="Pseudo disponible";
    						div.className="controleOK";
    						div.style.display="";
    					}
    					else{
    						var regSeparateurProposition=new RegExp(",","g");
    						var propositions=parties[2].split(regSeparateurProposition);
    						div.innerHTML="Pseudo réservé";
    						if (parties[2] !=""){
    							div.innerHTML+="<br /> Nous vous proposons : ";
    						}
    						for (var i=0;i<propositions.length ; i++){
    							div.innerHTML+="<a href=\"javascript:choixPseudo('"+propositions[i]+"')\">
    							"+propositions[i]+"</a>";
    						}
    						div.className="controleNOT_OK";
    						div.style.display="";
    					}
    				}
    			}
    		}
    		xhr_object.send(null);
    	}
    	function choixPseudo(proposition){
    		document.monFormulaire.pseudo.value=proposition;
    		ajaxPseudo(document.monFormulaire);
    	}
    </script>
    <style type="text/css">
    	body{
    		font-family:arial;
    		font-size:10pt;
    	}
    	label{
    		width:250px;
    		float:left;
    	}
    	.controleOK{
    		margin-left:250px;
    		color:#339966;
    		font-weight:bold;
    	}
    	.controleNOT_OK{
    		margin-left:250px;
    		color:#FF0033;
    		font-weight:bold;
    	}
    </style>
    Inscrivez-vous :<br /><br />
    <form name="monFormulaire">
    <label>Indiquez votre ville :</label> <input type="text" name="ville" /><br />
    <label>Indiquez votre année de naissance :</label> <input type="text" name="annee" /><br />
    <label>Choisissez votre pseudo :</label> <input type="text" name="pseudo" onChange="ajaxPseudo(this.form)" /><br />
    <div id="divControlePseudo" style="display:none" class="controleOK"></div>
    </form>
    <br />
    Voyez vous le probl�me?
    Ps : il manque un ";" � la fin de var reponse mais c'est comme �a dans le livre

  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,
    pourrais-tu pr�ciser ce qui "ne marche pas" ?
    Il y a une erreur JS (laquelle ?) ?
    Ajax n'est pas appel� ?
    Sa r�ponse n'est pas la bone ?
    ...

    D�j� un petit probl�me de syntaxe (d�pr�ci�e) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    f.elements['pseudo'].value
    au lieu deMais pas s�r que �a vienne de l� (� corriger quand m�me, et v�rifier si ce n'est pas le cas ailleurs EDIT : c'est le cas ailleurs. Pour une r�f�rence par name, utilise syst�matiquement la syntaxe
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.forms['name_du_form'].elements['name_element'].propriete
    )

    A+

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Par d�faut
    Alors en fait c'est simple, je rentre un pseudo mais il ne se passe rien.
    J'ai fait les modifs mais �a ne marche toujours pas

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <script type="text/javascript">
    	function ajaxPseudo(f){
    		var xhr_object = null;
    		if (window.XMLHttpRequest){
    			//pour Firefox
    			xhr_object = new XMLHttpRequest(); 
    			alert("Vous utilisez Firefox comme navigateur");
    		}
    		else if (window.ActiveXObject){
    			//pour IE
    			xhr_object = new ActiveXObject ("Microsoft.XMLHTTP");
    			alert("Vous utilisez IE comme navigateur");
    		}
    		else {
    			alert("Votre navigateur, c'est de la merde !");
    			return;
    		}
    		var url="pseudo.php?pseudo="+escape(forms['f'].elements['pseudo'].value)+"&amp;ville="+escape(forms['f'].elements['ville'].value)+"&amp;annee="+escape(forms['f'].elements['annee'].value);
    		xhr_object.open("GET", url, true);
    		xhr_object.open.onreadystatechange = function(){
    			if (xhr.object.readyState == 4){
    				var reponse = xhr_object.responseText;
    				var regSeparateur=new RegExp(";", "g");
    				var parties=reponse.split(regSeparateur);
    				if (parties[0] == "CONTROLE_PSEUDO"){
    					var div=document.getElementById("divControlePseudo");
    					if (parties[1]=="OK"){
    						div.innerHTML="Pseudo disponible";
    						div.className="controleOK";
    						div.style.display="";
    					}
    					else{
    						var regSeparateurProposition=new RegExp(",","g");
    						var propositions=parties[2].split(regSeparateurProposition);
    						div.innerHTML="Pseudo réservé";
    						if (parties[2] !=""){
    							div.innerHTML+="<br /> Nous vous proposons : ";
    						}
    						for (var i=0;i<propositions.length ; i++){
    							div.innerHTML+="<a href=\"javascript:choixPseudo('"+propositions[i]+"')\">
    							"+propositions[i]+</a>";
    						}
    						div.className="controleNOT_OK";
    						div.style.display="";
    					}
    				}
    			}
    		}
    		xhr_object.send(null);
    	}
    	function choixPseudo(proposition){
    		document.monFormulaire.pseudo.value=proposition;
    		ajaxPseudo(document.monFormulaire);
    	}
    </script>
    <style type="text/css">
    	body{
    		font-family:arial;
    		font-size:10pt;
    	}
    	label{
    		width:250px;
    		float:left;
    	}
    	.controleOK{
    		margin-left:250px;
    		color:#339966;
    		font-weight:bold;
    	}
    	.controleNOT_OK{
    		margin-left:250px;
    		color:#FF0033;
    		font-weight:bold;
    	}
    </style>
    Inscrivez-vous :<br /><br />
    <form name="monFormulaire">
    <label>Indiquez votre ville :</label> <input type="text" name="ville" /><br />
    <label>Indiquez votre année de naissance :</label> <input type="text" name="annee" /><br />
    <label>Choisissez votre pseudo :</label> <input type="text" name="pseudo" onChange="ajaxPseudo(this.form)" /><br />
    <div id="divControlePseudo" style="display:none" class="controleOK"></div>
    </form>
    <br />

  4. #4
    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
    Citation Envoy� par Zenerox Voir le message
    J'ai fait les modifs mais �a ne marche toujours pas
    Oui, mais "f" est ton objet formulaire (et non son name).
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    forms['f'].elements['pseudo'].value
    n'est donc pas correcte. C'est plut�t
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    f.elements['pseudo'].value
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    forms['monFormulaire'].elements['pseudo'].value
    mais dans ce cas tu n'utilises plus ton param de la fonction.

    Si �a ne marche toujours pas, v�rifie que l'url
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    pseudo.php?pseudo="+escape(forms['f'].elements['pseudo'].value)+"&amp;ville="+escape(forms['f'].elements['ville'].value)+"&amp;annee="+escape(forms['f'].elements['annee'].value
    tapp�e dans la barre d'adresse du nav (avec des valeur r�alistes, bien s�r) te r�pond, et avec le r�sultat attendu.
    Sinon, tes passage <script> et <style> sont-ils bien dans le <head> de ta page. Dans le code donn�, �a ne semble pas �tre le cas ...

    A+

Discussions similaires

  1. M�thode getSize() qui ne marche pas
    Par mush_H dans le forum Agents de placement/Fen�tres
    R�ponses: 15
    Dernier message: 20/03/2005, 01h29
  2. [SWING] KeyListener qui ne marche pas
    Par kindool dans le forum AWT/Swing
    R�ponses: 2
    Dernier message: 10/01/2005, 19h04
  3. Iptables configuration qui ne marche pas....
    Par The_Nail dans le forum S�curit�
    R�ponses: 7
    Dernier message: 03/02/2004, 14h27
  4. R�ponses: 3
    Dernier message: 08/09/2003, 15h06
  5. R�ponses: 9
    Dernier message: 07/05/2003, 12h57

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