Probleme id js

Fermé
helloworld - 24 avril 2019 à 16:30
 Solar - 25 avril 2019 à 12:33
Bonjour,

Je débute en js et je suis dans une impasse...
J'aimerai supprimer un élément en db au moment on l'on clique sur un button. Probleme, je génére les button avec le nombre d'élement en db.

Pour suppimer l'élément en db j'ai besoin de récuperer sont id unique mais je ne sais pas comment le faire étant donné qu'il ya aucun lien entre les buttins et l'élément en js..

Exemple:

    $.ajax({
            url : "/",
            type : "POST",
            data : {action : "getMyDatas", id : userId},
            success : function(resp){
                    let parse = JSON.parse(resp);
                    let mesData = Object.values(parse);
                      mesData.forEach(e => {
                        $("body").append('<button id="id"></button>');
             }

})


    function cancelData(dataId){
        $.ajax({
            url : "/",
            type : "POST",
            data : {action : "cancelData", id : dataId},
            success : function(resp){
                //

            },
            error : function(){

            }
        });
    }


$("#id").on("click",function(){
    //comment savoir quelle id convient de mettre en parametre ?
    cancelData();
});






Configuration: Windows / Chrome 73.0.3683.103

2 réponses

jordane45 Messages postés 38263 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 octobre 2024 4 693
24 avril 2019 à 17:02
Bonjour,

Lorsque tu génères tes boutons.... tu as quoi dans ta variable mesData ?
success : function(resp){
                    let parse = JSON.parse(resp);
                    let mesData = Object.values(parse);
                      mesData.forEach(e => {
                        $("body").append('<button id="id"></button>');
             }


Je suppose que cela contient les données provenant de ta bdd... et donc qu'on peut y trouver l'id
un truc du genre
success : function(resp){
                    let parse = JSON.parse(resp);
                    let mesData = Object.values(parse);
                      mesData.forEach(e => {
                        let id = e.id;
                        $("body").append('<button id="'+id+'"></button>');
             }

0
Salut,

pas très beau ça:
<button id="id"></button> surtout dans une boucle, plusieurs valeurs d'id identiques :s forcément ça ne va pas aider.
Soit vous liez l'id avec la valeur ou vous pouvez indiquer un attribut value dans le bouton.
Ensuite lors du clic vous la récupérez. Comme dans l'exemple de jordane45 l'id est crée dynamiquement.
Une autre solution un peu plus lourde est de créer un formulaire(pour chaque bouton) avec un champ hidden. ça revient au même mais permet d'utiliser GET ou POST et de traiter la valeur séparément du bouton.
0