Ajax et variables js

WRInaute discret
Bonjour
Je suis pas trop à l'aise avec le javascript
J'ai une page php qui donne comme résultat "libre" ou "occupe"
je récupère ces valeurs en ajax

Code:
alert(resultat);

me donne bien "libre" ou "occupe"

par contre je n'arrive pas à tester ensuite:

Code:
if(resultat == "libre")....
else if(resultat == "occupe")....
{
Je ne rentre pas dans le if


Je ne comprends vraiment pas?
 
U
u94082
Guest
Salut,

Il faudrait que tu postes un plus gros morceau de code, parcequ'avec seulement ces 3 lignes difficile d'y voir clair. Surtout que l'erreur est probablement ailleurs...
 
WRInaute discret
Merci d'avoir répondu
Je pensais que ça suffisait car je croyais me tromper au niveau du test des variables

J'appelle le script à partir d'un input
Code:
 <input type='text' id='raison_sociale' name='raison_sociale' size='40' onKeyUp="verifRaison(this.value)" >

Le script en question :
Code:
function file(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);
}

function verifRaison(raison)
{
if(raison != '')
    {
    if(resultat = file('verifRaison.php?raison_sociale='+escape(raison)))
        {
        if(resultat == "libre")
        {
        writediv(raison+' : est un Nom de Menu est occupé !');
        }
        else if(resultat == "occupe")
        {
        writediv(raison+' : est un Nom de Menu libre vous pouvez l ajouter à la BD');
        }
        else 
        { 
        writediv(texte);
        }
    }
}

}

function writediv(texte)
{
document.getElementById('zonetraitement').innerHTML = texte;
}

Tout fonctionne sauf que je n'arrive pas à rentrer dans les boucles if(resultat == "libre") et else if(resultat == "occupe") comme si ça ne correspondait pas alors qu'un alert(resultat) juste avant me donne bien "libre" et "occupe"


Merci
 
U
u94082
Guest
Bon déjà je pige pas trop pourquoi tu t'embète à récupérer la variable bizarrement (ajax file()+escape) alors que ta fonction te la renvoie déjà dès le début (onkeyup="verifRaison(this.value)" et puis tu devrais plutôt utiliser un switch en lieu et place des structures conditionnelles, ton code y gagnerai en clarté.

Le principe de la vérificaition JS c'est de prendre le pas sur celle en php, qui ne sera utilisée que lorsque le client n'a pas le JS d'activé.

Code:
function verifRaison(raison) {

	if(raison != null) {
	
		switch (raison) {
		
			case 'libre':
				writediv('Libre : est un Nom de Menu libre vous pouvez l\'ajouter à la BD');
			break;
		
			case 'occupe':
				writediv('Occupé : est un Nom de Menu est occupé !');
			break;
		
			default :
				writediv(texte); //Mais quel texte ?
		}
	
	}
	
}
 
WRInaute discret
julienr a dit:
essaye ceci :
Code:
alert( '[' + resultat + ']' );

Même résultat que
Code:
alert(resultat);

antinomx ->Je vais essayer de revoir le code car c'est du copier coller et je suis pas du tout à l'aise avec le js
Mais le problème est quand même bizarre non?
 
WRInaute impliqué
bah si je comprends bien

Code:
alert( resultat );

if( resultat == 'libre' )
{
    alert( 'resultat = libre' );
}
else if( resultat == 'occupe' )
{
   alert( 'resultat = occupe' );
}
else
{
   alert( 'resultat = unknow' );
}

1/ si tu as resultat = unknow c'est que resultat contient des caractères non imprimable ou d'encodage
2/ si pas d'alert après alert( resultat ) c'est qu'il y a une erreur de syntaxe et que la suite du script ne s'execute pas
 
WRInaute discret
antinomx -> si j'essay ton code je n'ai plus de référence à ma fonction file donc plus de requête sur mon fichier php

julien -> en effet j'ai résultat = unknown

J'avais pensé à un pb d'encodage car je suis en utf8
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut