Probleme id js

helloworld -  
 Solar -
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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  2. Solar
     
    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