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] Incompréhension sur une incrémentation de variable


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 23
    Points
    23
    Par défaut [AJAX] Incompréhension sur une incrémentation de variable
    Bonjour la communauté,

    Je post sur le forum Ajax parce que mon problème est dans une fonction ajax() mais je ne vois pas en quoi cela peut être lié

    j'ai deux fonctions qui me servent à faire défiler des fiches "adhérent" avec la variable globale ida qui me servira de pointeur (WHERE) envoyée ensuite dans une requête PHP...
    je récupère en js le click sur "suivant" et "précédent"... que j'envoi ensuite à une fonction ajax() qui me traite l'affichage de la fiche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(document).on('click','.suiv',function (){
          ida=ida+1;
          routefiche(ida,'direct');
          }) 
     
     $(document).on('click','.prec',function (){
          ida=ida-1;
          routefiche(ida,'direct');
          })
    mon problème, c'est que la décrémentation fonctionne bien.... 10-9-8-7.. etc
    par contre l’incrémentation me fait 1-11-111-1111...

    et là, je sèche complètement...

    Le problème doit être évident mais je ne comprends pas pourquoi dans une fonction, ma variable est traitée comme une chaîne et dans une autre, cette même variable est traitée comme un entier

    Merci de votre aide

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    merci 1000 fois,

    quel âne, je l'en veux de ne pas avoir réfléchis à la concaténation du +. J’étais perdu dans une logique purement mathématique..

    Par contre, ca ne m'explique pas pourquoi, quand je fais une fois la décrémentation, l’incrémentation que je fais ensuite fonctionne bien.
    En clair, si j’appelle la fiche 9 :
    si j’incrémente : ca me fait 9-91-911 (donc normal sans le parseFloat)
    mais
    si je commence une décrémentation puis que j’incrémente : 9-8-9-10-11-12 (ça fonctionne bien).

    Quelle est la logique ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    l'opérateur + est un opérateur d'addition/concaténation suivant le type de données manipulées
    l'opérateur - est un opérateur de soustraction qui rend un number

    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
    var x = '9',
        y =  9;
    console.log( typeof x +' : ' +x);  // string : 9
    console.log( typeof y +' : ' +y);  // number : 9
    // on ajout 1 à chacun
    x = x +1;
    y = y +1;
    console.log( typeof x +' : ' +x);  // string : 91
    console.log( typeof y +' : ' +y);  // number : 10
    // on retranche 1 à chacun
    x = x -1;                          // ici x change de type elle passe de string -> number
    y = y -1;
    console.log( typeof x +' : ' +x);  // number : 90
    console.log( typeof y +' : ' +y);  // number : 9
    // on ajout 1 à chacun
    x = x +1;
    y = y +1;
    console.log( typeof x +' : ' +x);  // number : 91
    console.log( typeof y +' : ' +y);  // number : 10

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Breakpoint sur une modif de variable
    Par teska dans le forum Delphi
    Réponses: 8
    Dernier message: 26/06/2018, 13h50
  2. pb sur une comparaison de variable
    Par azräel dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/05/2009, 13h48
  3. [AJAX] zoom sur une image + déplacement
    Par yann.morineau dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/02/2009, 09h41
  4. [AJAX] requete sur une page php
    Par xokami35x dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 20/11/2008, 20h35
  5. [MySQL] WHERE sur une partie de variable
    Par nicoxweb dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/10/2007, 23h37

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