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 :

Sauvegarder des valeurs par défaut


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Sauvegarder des valeurs par défaut
    Salut,

    Alors j'avance sur un projet personnel et donc je suis bloqué à cette endroit. Je m'explique, en regardant l'image ci-dessous, on peut voir que je peux augmenter le nombre de grammes qui est par défaut 100.
    Si je passe à 150 pour la première ligne, j'ai les protéine qui par exemple passe de 12 à 18.

    Nom : Capture.PNG
Affichages : 86
Taille : 7,9 Ko

    Mon code js est le suivant [J'essaye pour l'instant que pour protéine] :

    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
     
    $('.quantite').change(function(event)
    {
    	var newGramme;
    	var proteine;
            var calcule = 0;
     
            // Récupération des données de la ligne qu'on modifie après le changement de grammes
    	newGramme = $(this).val();
     
           // Récupération de la valeur des proteines
           proteine = $(this).closest('tr').find('.proteine');
     
           calcule =  (newGramme / 100) * parseFloat(proteine.html());
     
           // Remplacement de la nouvelle valeur des proteines arrondie
           proteine.html(Math.round(calcule*100)/100);
     
    });
    Et mon soucis c'est que, si je modifie encore une fois la quantité, j'ai envie de refaire le même calcule mais avec la première valeur qui était 12 et non la nouvelle valeur de proteine
    car ça va faussé tous mon calcule. Et je vois vraiment pas comment en jQuery, je peux conserver la valeur par défaut. Si quelqu'un a une idée

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Avec ou sans jQuery c'est le même principe.

    Avant le onchange, donc sur onload il te suffit d'enregistrer les valeurs initiales dans un objet. Et ensuite tu te serviras de ces valeurs initiales pour faire tes calculs.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Ah merci ce que tu m'as dit m'a donné une idée. J'ai fait à peux près ce que tu m'as dit mais en partant de PHP

    Lors de la création de mon tableau, je créais en même temps un tableau associatif avec l'index de ligne + toutes les données

    Je l'encode en JSON et le récupère sur mon script JS. Puis sur mon script comme j'ai mis un index en attribut sur mon élément input number, je peux récupérer cette index
    et parcourir mon tableau du style tableauJS[indexRecuperer][proteine] pour récupérer par exemple les proteines dans leur valeur initiale.

    Merci et à bientôt.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Oui je json c'est une solution, surtout si tes tableaux sont très grands. Sinon l'avantage de le faire en javascript est que cela permet un meilleur découplage entre tes scripts.
    Mais bon que tu le fasse en php ou en js, je ferais plutôt une structure de tableau indexée avec le nom de l'aliment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tab['pomme']['proteine'] = 20; 
    tab['pomme']['glucide'] = 145; 
    tab['pomme']['lipide'] = 41;
    tab['pomme']['calorie'] = 145;
    tab['riz']['proteine'] = 12; 
    //...
    Les tableaux associatifs sont plus robustes, surtout si tu dois travailler dessus ensuite pour faire des ajouts/modifications/suppressions.

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

Discussions similaires

  1. Remettre des valeurs par défaut
    Par charles888 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/02/2011, 13h52
  2. Réponses: 0
    Dernier message: 21/08/2009, 11h13
  3. Réponses: 14
    Dernier message: 09/07/2008, 18h58
  4. Réponses: 2
    Dernier message: 26/10/2006, 17h52
  5. Réponses: 1
    Dernier message: 10/04/2006, 09h53

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