JeuWeb - Crée ton jeu par navigateur
[Résolu][Arret de caractéres dans un script Ajax] - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Arret de caractéres dans un script Ajax] (/showthread.php?tid=108)



[Résolu][Arret de caractéres dans un script Ajax] - phpgamer - 26-08-2006

Bonjour a tous,

Alors voila, je suis entrain de refaire mon script d'inscription afin qu'il soit plus rapide, plus beau, et surtout, faire l'interactivité avec de l'Ajax.
Deja, le code d'Ajax n'est pas de moi a la base, mais emprunté sur un site de script, mais je l'ai largement modifier afin de repondre a mes attentes. Le probleme, c'est que la, y a un bug que je comprend pas pourquoi il fait ca.

Le code sert en fait a dire si le pseudo, le nom, le prenom, etc, qu'a entré le joueur sont bon, mais en temps réel.

J'ai un champs comme ceci pour chaque champs a remplir, ici je vous montre pour le nom :

Code PHP :
<?php 
<fieldset>
<
legend>Nom</legend>
<
input type="text" name="nom" onKeyUp="verifNom(this.value)" />
<
div id="nombox"></div>
</
fieldset>

Lorsque je tape des lettres dans le champs, ca lance cette fonction :

Code PHP :
<?php 
<script type="text/javascript">
function
verifNom(nom)
{
if(
nom != '')
{
if(
nom.length<4)
writedivnom('<span style="color:#cc0000"><b>'+nom+' :</b> ce nom est trop court</span>');
else if(
nom.length>35)
writedivnom('<span style="color:#cc0000"><b>'+nom+' :</b> ce nom est trop long</span>');
else if(
texte = filenom('http://www.ai-project.be/verif_all.php?nom='+escape(nom)))
{
if(
texte == 1)
writedivnom('<span style="color:#cc0000"><b>'+nom+' :</b> ce nom est deja pris</span>');
else if(
texte == 2)
writedivnom('<span style="color:#1A7917"><b>'+nom+' :</b> ce nom est libre</span>');
else
writedivnom(texte);
}
}
}

Qui permet de vérifier pas mal de chose.
Alors, le pb vient du premier if(nom.length<4), car lorsque je tape dans le champs, la vérif s'arrete a 3 caracteres, même si j'en rentre plus dans le champs. Et si je met 20 a la place de 4, ca fera la vérif jusqu'a 19 caracteres, et je ne comprend pas pourquoi...

je vous donne les deux autres fonction js :

Code PHP :
<?php 
<script type="text/javascript">
function
writedivnom(texte)
{
document.getElementById('nombox').innerHTML = texte;
}

Code PHP :
<?php 
<script type="text/javascript">
function
filenom(fichier)
{
if(
window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(
window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(
false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(
xhr_object.readyState == 4) return(xhr_object.responseText);
else return(
false);
}

Voila, j'espere avoir été assez clair et si qq voit d'ou ca vient?

PS : J'ai une fonction de chaque pour chaque champs d'inscription, il y en a 10 en tout.


RE: [Arret de caractéres dans un script Ajax] - Loetheri - 26-08-2006

Tu as mis "<" (ou ">" qui revient au meme) ... Tu n'as pas pensé à mettre <= ou >= ?


RE: [Arret de caractéres dans un script Ajax] - phpgamer - 26-08-2006

Oui, mais le probleme reste le même car desormais, il n'y a que 4 caracteres qui sont vérifier, les autres ne le sont toujours pas.