zgodnie ze znalezionymi na forum informacjami popełniłem kod wklejony poniżej - dodawanie nowego wiersza działa dobrze, identyfikatory nowych pól się zwiększają, natomiast problem jest z tym, że po przeładowaniu strony za pomocą wyślij w tablicy $_POST są tylko zmienne z pierwszego wiersza, ktoś mógłby podpowiedziec ?
<table style="width:60%;"><tr> <thead> <tr> <td style="width:60%;">Nazwa</td> <td style="width:40%;">Ilość</td> </tr> </thead> <form action="........php" method="post"> <tbody id="elements"> <tr class="element"> <td style="width:60%;"> <select name="nazwa[0]" id="nazwa[0]" style="min-width:80%;"> <option value="Pozycja 1">Pozycja 1</option> <option value="Pozycja 2">Pozycja 2</option> </select> </td> <td style="width:40%;"><input id="ilosc[0]" name="ilosc[0]" type="number" min="1" class="input" required></td> </tr> </tbody> </table> <button id="submit" class="button">Wyślij</button> <button id="add" class="button">Dodaj kolejną pozycję</button> <script type="text/javascript"> var x = 0; $('#add').click(function(){ var newRow = $('#elements .element:first').clone(); x=x+1; //alert(x); newRow.find('select[name="nazwa[0]"]').attr('name', 'nazwa['+x+']'); newRow.find('select[id="nazwa[0]"]').attr('id', 'nazwa['+x+']'); newRow.find('input[name="ilosc[0]"]').attr('name', 'ilosc['+x+']'); newRow.find('input[id="ilosc[0]"]').attr('id', 'ilosc['+x+']'); newRow.find('input').val(''); newRow.appendTo($('#elements')); return false; }); </script> </form>