I have this function called by clicking a button:
$("#pulsanteNuovaCategoria").on('click', function(event) {
event.preventDefault();
var categoria = new FormData();
categoria.append("nome", $("#nomeNuovaCategoria").val());
categoria.append("descrizione", $("#descrizioneNuovaCategoria").val());
$.ajax({
url: '../php/model.php?az=nuovaCategoria',
data: categoria,
processData: false,
contentType: false,
type: 'POST',
dataType: 'json'
})
.done(function(data) {
$('.archi').append("<div class='accordion' id='accordionExample'><div class='card'><div class='card-header' id='headingOne'><div class='row'><div class='col-1'><h4>" + data.num + "</h4></div><div class='col-8'><h4 class='mb-0'><a href='#' data-toggle='collapse' data-target='#collapse" + data.archivio_id + "' aria-expanded='false' id='nomeCategoria" + data.archivio_id + "' aria-controls='collapseOne'>" + data.archivio_nome + "</a></h4></div><div class='col-1'><h4 class='mb-0'><a href='#' data-id='" + data.archivio_id + "' class='editaCat' data-toggle='modal' data-target='#modaleEditaCategoria' id='editCategoriaGenerale" + data.archivio_id + "'><i data-toggle='tooltip' data-placement='top' title='modifica " + data.archivio_nome + "' class='far fa-edit'></i></a></h4></div><div class='col-1'><h4 class='mb-0'><a href='#' data-id='" + data.archivio_id + "' class='deleteCat' id='deleteCategoriaGenerale" + data.archivio_id + "'><i data-toggle='tooltip' data-placement='top' title='Cancella categoria generale' class='far fa-trash-alt'></i></a></h4></div></div></div><div id='collapse" + data.archivio_id + "' class='collapse' aria-labelledby='headingOne' data-parent='#accordionExample'><div id='descrizioneCategoria" + data.archivio_id + "' class=card-body'>" + data.archivio_descrizione + "</div></div></div></div>");
$("#nomeNuovaCategoria").val("");
$("#descrizioneNuovaCategoria").val("");
$("#modaleNuovaCat").modal('hide');
})
.fail(function() {
alert("Qualcosa è andato storto.");
});
});
This function create dynamically an entire snippet of html with an edit button completed with data-id, class and id. The important element is class='editaCat'
.
Now in the same session, I want to click in this dynamic edit button and call a second function linked with class='editaCat'
this:
$(".editaCat").on('click', function(event) {
event.preventDefault();
var idCat = this.getAttribute('data-id');
$.ajax({
url: '../php/model.php?az=editCategoria&id=' + idCat,
processData: false,
contentType: false,
type: 'POST',
dataType: 'json'
})
.done(function(data) {
$("#editaNomeCategoria").val(data.archivio_nome);
$("#editaDescrizioneCategoria").val(data.archivio_descrizione);
$("#pulsanteEditaCategoria").attr("data-id", data.archivio_id);
})
.fail(function() {
alert("Qualcosa è andato storto.");
});
});
but it doesn't work.
Help!