Okk....
Allora... diciamo innanzitutto che devi rendere dinamici anche gli script in javascript..... l'ho riscritto per farti capire il funzionamento dinamico, poi se vorrai fare tutto con jquery studierai come implementarlo... mica devo fare tutto io giusto ? :-)
Manca anche la funzione remove()... lascio a te il compito di studiarti il DOM per la rimozione delle linee (e il decremento del contatore ovviamente....).
Ho rimosso la query del database per riuscire a provarlo, la rimetterai tu come meglio si addice. Provato e funziona.
Ti lascio il codice....
Se hai bisogno di delucidazioni chiedi pure.codice HTML:<div id="form"> <select id="prestazione0" onchange="selezionaImporto(0)"> <option value="" selected> Scegli <option value="1"> Opzione 1 <option value="2"> Opzione 2 <option value="3"> Opzione 3 </select> <label>id:</label><input type='text' id='selectValue0' disabled> <label>importo lordo:</label><input type='text' id='importo0' disabled> <label>percentuale sconto:</label><input type='text' id='sconto0' value="0" onkeyup="javascript:calcolaSconto(0);"> <label>importo netto:</label><input type='text' id='totale0' onkeyup="javascript:calcolaSconto(0);"> <a href="#" class="add" rel=".clone" onClick="javascript:aggiungi();">aggiungi<br></a> </div> <script language="javascript"> var cont = 0; function selezionaImporto(id) { var idSelect = document.getElementById("prestazione"+id).selectedIndex; var importo = document.getElementById("importo"+id); document.getElementById("selectValue"+id).value=idSelect; if (idSelect==1) importo.value = '50'; if (idSelect==2) importo.value = '1'; if (idSelect==3) importo.value = '325'; calcolaSconto(id); } function calcolaSconto(id) { var percentuale = document.getElementById("sconto"+id).value; var importo = document.getElementById("importo"+id).value; var totSconto = (percentuale * importo) / 100; var totImporto = importo - totSconto; document.getElementById("totale"+id).value = totImporto; } function aggiungi() { cont++; var newForm= "<select id='prestazione"+cont+"' onchange='selezionaImporto("+cont+")'>"; newForm+= "<option selected> Scegli</option>"; newForm+= "<option value='1'> Opzione 1</option>"; newForm+= "<option value='2'> Opzione 2</option>"; newForm+= "<option value='3'> Opzione 3</option>"; newForm+= "</select>"; newForm+= "<label> id:</label><input type='text' id='selectValue"+cont+"' disabled>"; newForm+= "<label> importo lordo:</label><input type='text' id='importo"+cont+"' disabled>"; newForm+= "<label> percentuale sconto:</label><input type='text' id='sconto"+cont+"' value='0' onkeyup='javascript:calcolaSconto("+cont+");'>"; newForm+= "<label> importo netto:</label><input type='text' id='totale"+cont+"' onkeyup='javascript:calcolaSconto("+cont+");'>"; newForm+= "<a href='#' class='add' onClick='javascript:aggiungi();'> aggiungi</a>"; newForm+= "<a href='#' class='add' onClick='javascript:rimuovi("+cont+");'> rimuovi<br></a>"; $('#form').append(newForm); } function rimuovi(id) { cont--; /* ... */ } </script>
Addirittura protresti eliminare il primo form, e chiamare subito la funzione aggiungi() al caricamento della pagina.... effettuando le opportune modifiche.....
Ciao,
buon lavoro

Rispondi quotando