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

AJAX Discussion :

[AJAX] Qu'est ce qui peut faire que 1 != 1 ?


Sujet :

AJAX

  1. #1
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut [AJAX] Qu'est ce qui peut faire que 1 != 1 ?
    Salut à tous,

    J'ai un pti probleme avec une requete ajax, que j'arriv pas à comprendre...

    Voici le code serveur (php) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( $login )
        echo utf8_decode("0");
    else
        echo utf8_decode("1");
    Et la requete :

    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
     
    $.ajax({
    	type: "POST",
    	url: "nameVerif.html",
    	data: "name=" + login,
    	async: false,
    	timeout: 10000,
    	success: function(data)
    	{
    	        console.log(typeof data);
    		console.log("|"+data+"|");
    		switch($.trim(data))
    		{
    		    case '0':
    			alert("0");
    		    break ;
    		    case '1':
    			alert("1");
    		    default:
    			alert("default");
    		}
             },
             error: ...
    Et ça alert "default" ...

    Je fais une requete asynchrone, parce que j'ai besoin d'une continuité dans le script, et j'ai essayé, ça ne change rien.
    Je fais un utf8_decode, je me suis dit que ça pouvait être un pb d'encodage, le js prenant moyennement en charge uf8 je crois. Mais si je l'enleve ou met uft8_encode, ça change rien.
    Le 1er console log renvoit string
    Le 2e renvoit "| 1 |".
    Quelqu'un a une idée ?

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,

    c'est normal que tu appelles une page HTML ?

    EDIT :
    Et avec un break en plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    case '1':
    	alert("1");
    	break;

  3. #3
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut
    Oui c'est normal, c'est notre framework qu'y est comme ça.

    Effectivement, j'avais zappé le 2e break, je l'ai rajouté, mais ça change rien.

    Mais j'ai encore plus drole :

    code serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ( $login )
    	echo 0;//"pasbon";
    else
    	echo 1;//"ok";
    code js :
    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
     
    success: function(data)
    {
    	console.log(data);
    	data = parseInt(data);
    	console.log(typeof data);
    	console.log("|"+data+"|");
    	switch(data)
    	{
    		case 0:
    	            alert("0");
    		break ;
    		case 1:
    			alert("1");
    		break;
    		default:	
    			alert("default");
    	}
    Et résultat, incroyable :
    "1"
    "number"
    "| NaN |"

    ça peut etre qu'un probleme de caractère. Mais je vois pas comment m'en sortir.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Et si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = data.replace(/\D/g,'');
    ?

  5. #5
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut
    C'est incroyable,

    ça fait :
    "1"
    string
    "| 1 |"

    et ça alert "default"

    Je ne comprends pas.

    On peut pas avoir le code d'encodage des caractères ?

  6. #6
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut
    var codechar = data.charCodeAt(0);
    console.log(codechar);

    renvoit 49

    http://unicode.coeurlumiere.com/
    49 c'est 1.
    Je ne comprends pas.

Discussions similaires

  1. Qu'est-ce qui peut expliquer que la suppression est longue ?
    Par oneagaindoguys dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/03/2011, 14h08
  2. Qu'est-ce qui peut perturber un écran TFT ?
    Par Keihilin dans le forum Périphériques
    Réponses: 4
    Dernier message: 24/12/2007, 15h03
  3. [AJAX] Qu'est ce qui ne marche pas
    Par Anthony.Desvernois dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/09/2007, 00h04
  4. Gestion affluence ? Qu'est ce qui peu faire "ramer" un site ?
    Par Kenshin86 dans le forum Hébergement
    Réponses: 10
    Dernier message: 30/08/2007, 19h22
  5. Qui peut faire du recrutement de bénévoles ?
    Par Marc Lussac dans le forum Autres
    Réponses: 0
    Dernier message: 02/04/2007, 19h16

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