Ciao, potresti intanto corregere alcune cose. Gli ID in pagina nei tag dovrebbero essere univoci. Gli id che hai messo sui tasti per Remove hanno stesso id, piuttosto usa un data-id="TUO_ID" e al posto di $(this).attr('id') andrai a leggere un $(this).data('id');
La form, al posto di prendere il click sul button prendi il submit stesso sulla form, in questo modo sei sicuro di bloccare il submit lato html/client stesso :
codice:
$('#add_name').on('submit', function(e) {
e.preventDefault() ; //Blocca il submit
//...e qui il resto
});
A cosa ti serve fare una doppia chiamata ajax per mandare gli stessi dati delle form? Cosi' come impostato immagino che con 10 items, avrai 10 chiamate ajax! Stai inviando cmq un array dati e quindi hai tutto nello stesso $_POST e basterà se mai cilclarlo.
Lato PHP fai una query senza verificare che sia andata a buon fine, la esegui solo se è stato dato un nome nella form al relativo item.
Controlla almeno che sia TRUE il risultato di mysqli->query.
Se vuoi un consiglio (almeno io sono comodo così), piuttosto che fare un semplice echo di un risultato da leggere poi in javascript "success" usa un array encodato cosi' da poter passare più dati e poter anche debuggure altro volendo.
codice:
//Da PHP
$result = array("insert"=> true, "error" => "Metto qui l'errore se necessario", "altra_key"=> "Altro valore" );
header("Content-Type", "application/json");
echo json_encode($result);
In questo modo in console, sulla chimata in ajax, nella response vedrai chiaramente l'object che potrai leggere comodamente con javascript nella success con console.log(data).