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 :

Supprimer un article du panier


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    En développement
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En développement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Supprimer un article du panier
    Hello ! Je suis sur un exercice de création d'un site de e-commerce basique via une API local. J'ai réussi à créer panier qui se rempli avec pour chaque élément un bouton supprimer. Lorsque je l'utilise dans l'ordre (du haut vers le bas) : pas de problème mes articles sont bien supprimés mon panier s'actualise correctement (ainsi que mon localStorage). Par contre si je decide de supprimer mes articles de façon aléatoire : c'est le bazar (par exemple, si je supprime le dernier article de ma liste, c'est le premier qui disparait...) Happy Codeurs, pourriez vous regarder mon code et m'aider à trouver une solution ? MERCI !
    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
     
            // Btn supprimer article //
            const deleteItem = document.querySelectorAll(".delete__item");
            deleteItem.forEach((btn) => {
                btn.addEventListener('click', e => {
                deleteItemSelect(e, items);
                });
     
    // Dans LocalStorage : suppression de l'article sélectionné //
    function deleteItemSelect(e, items) {
        let index = e.target.classList[1].slice();
        items.splice(index, 1);
        localStorage.setItem('anyItem', JSON.stringify(items));
     
        if (items.length === 0) {
            localStorage.removeItem('anyItem');
        }
        updateNumberArticles();
    }

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Sans même regarder ton code, c'est clair que tu as donné le même id à tous tes articles...

    Pour comparer, c'est comme si tu appelais tes 4 enfants "Jacques", "Jacques", "Jacques" et "Jacques".
    Ou comme si tu proposais une liste d'articles... tous semblables.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    En développement
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En développement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse mais, pourtant, chacun de mes articles à une id unique.
    Nom : 4.png
Affichages : 2424
Taille : 155,5 Ko.
    Je suis perdu...

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Ah non, je m'ai trompé

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    let index = e.target.classList[1].slice();

    index renvoie zéro; logiquement, il devrait plutôt s'agir d'une chaîne puisque c'est l'identifiant d'une classe...

    Quand tu passes index comme indice de début à splice, c'est logique que le premier élément du tableau soit supprimé, vu que c'est ce que tu demandes...;

    Donc, revois la méthode slice()... Parce que là, la valeur sera identique pour tous les articles!

  5. #5
    Futur Membre du Club
    Homme Profil pro
    En développement
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En développement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Points : 5
    Points
    5
    Par défaut

    Donc, revois la méthode slice()... Parce que là, la valeur sera identique pour tous les articles!
    Ooohlalaaa... j'ai bien essayé de rentrer des valeurs mais du coup je ne suis vraiment pas sur que ce soit la bonne méthode. Je peux pas simplement dire à mon code : Tu vois cette id ? et bien tu le supprimes (du DOM et de ton array).

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    C'est l''index de la collection que tu dois passer à onclick

  7. #7
    Futur Membre du Club
    Homme Profil pro
    En développement
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En développement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    aouch... et je fais ça comment ?

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    deleteItem.forEach((btn,i) => btn.addEventListener('click', () =>  deleteItemSelect(i))
     
    // Dans LocalStorage : suppression de l'article sélectionné //
    function deleteItemSelect(index) {
    	items.splice(index, 1);
    	//...
    }

  9. #9
    Futur Membre du Club
    Homme Profil pro
    En développement
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En développement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    J'y ai cru tellement ça semblait beau mais... j'ai cette erreur Nom : 5.png
Affichages : 2369
Taille : 94,2 Ko Nom : 6.png
Affichages : 2304
Taille : 93,5 Ko

  10. #10
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Eh bien passe item en paramètre également (je ne sais pas où tu définis l'objet)

  11. #11
    Futur Membre du Club
    Homme Profil pro
    En développement
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En développement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Ok je verrais ça un peu plus tard. En tout cas MERCI de ton temps ! Je met le post en résolu par ce que je pense que j'ai tout ce qu'il me faut !
    Encore MERCI !

  12. #12
    Futur Membre du Club
    Homme Profil pro
    En développement
    Inscrit en
    Octobre 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En développement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Petit update : Cela fonction effectivement PARFAITEMENT et grâce à tes précieux conseils ! MERCI !

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

Discussions similaires

  1. [MySQL] Insertion en BDD différente de mon nb d'articles dans panier
    Par Valadone dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/08/2015, 17h21
  2. [eCommerce] Modification quantité article dans panier
    Par MarieNum dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 27/10/2011, 10h46
  3. probleme suppression ligne dans zone de liste
    Par maclolo2 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/08/2011, 14h53
  4. [PHP-JS] modif quantite article dans panier
    Par oceane751 dans le forum Langage
    Réponses: 8
    Dernier message: 16/09/2006, 00h34
  5. [Sécurité] suppression d'article dans un panier
    Par oceane751 dans le forum Langage
    Réponses: 3
    Dernier message: 03/12/2005, 15h50

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