Jako że to mój pierwszy temat (i post za razem) z tego miejsca pragnę powitać wszystkich użytkowników forum.
Przechodząc do meritum problemu. Napisałem skrypt formularza zamówienia obuwia (częściowo sam częściowo przerabiając gotowe skrypty i łącząc je w jeden), w którym kolejne linijki do zamówienia par generowane są dynamicznie za pomocą przycisku "+" i w razie potrzeby usuwane (przyciskiem "-"). Utknąłem jednak przy pisaniu systemu wysyłającego całość na maila.
Opis Problemu
Wszystko działa nieźle z tym że jeśli użytkownik zacznie wypełniać formularz doda przykładowo 6 wierszy dla 6 różnych modeli obuwia po czym stwierdzi że rezygnuje z pozycji 3 i 4 to:
Po pierwsze - numeracja porządkowa linijek psuje się i wygląda tak 1 2 5 6 ( z tym akurat mogę żyć
Po drugie - na maila przychodzi mi cos takiego:
1 Nr katalogowy 123 35par
2 Nr katalogowy 1453 35par
3 (Pusty wiersz)
4 (pusty wiersz)
5 Nr katalogowy 123 35par
6 Nr katalogowy 123 35par
Co w przypadku 50 dodanych pozycji może być uciążliwe w odbiorze.
Moje przypuszczenia
Wydaje mi się że problem leży po stronie skryptu php i pętli for która nie pomija pustych rekordów wysłanych za pomocą $_POST lub też numeracji formularza w jquery (numeracja nie zmienia sie wiec pozostaja puste ID które skrypt php próbuje wyciągnąć z tablicy
czego próbowałem
1. Poprawa numeracji pól - fiasco dopisałem do jquery w miejscu :
$("#usunOsobe_" + ii).click(function(){ $("#wiersz_" + ii).remove(); });
linijke i--; i niby jest ok jezeli ktos usuwa tylko ostatni wiersz a nie któryś ze środka
2. Zapętlenie pętli for pętlą foreach - tutaj zatrzymały mnie umiejętności php :/ po prostu nie umiem tego napisać
3. przerobienie jquery tak żeby minus usuwał tylko ostatnią linijke kodu (patrz ad1) tutaj poległem na funkcji
$('#form tbody tr:last').remove();
u mnie po prostu usuwa wszystkie wiersze tabeli z dynamicznym formularzem zamiast ostatniego
Tytułem zakończenia
Wszystkie proponowane przezemnie rozwiazania doprowadzone do wersji działającej oraz rozwiązania zupełnie inne są jak najbardziej akceptowane i rozumiane przeze mnie jako pomoc za którą szumnie dziękować będę

Kod formularza:
</script> <script type="text/javascript"> $(document).ready(function(){ $(".field").change(function(){ $(this).css("background-color","#fbffa0"); }); var i = 2; var szablonWiersza = jQuery.format($("#szablon").val()); function dodajWiersz() { var ii = i++; $(szablonWiersza(ii)).appendTo("#form tbody"); $(".field").change(function(){ $(this).css("background-color","#fbffa0");}); $("#usunOsobe_" + ii).click(function(){ $("#wiersz_" + ii).remove(); }); } $("#dodajOsobe").click(dodajWiersz); }); </script> <!-- Szablon wiersza w tabeli --> <textarea id="szablon" style="display:none;" cols="1" rows="1"> <tr id="wiersz_{0}"> <td width="108"> <input type="text" name="id[]" value="{0}" style="display:none;"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> </tr> </textarea> <div id="form_container"> <!-- Właciwa tabela --> <table id="header" border="0" width="800px" cellspacing="0" cellpadding="0"> <thead> <tr> <td> FORMULARZ ZAMÓWIENIA</td> </tr> <tr> <td> Proszę wpisać numer katalogowy oraz liczbę zamawianych par</td> </tr> </thead> </table> <form action="parser.php" method="post" id="order_form"> <table id="form" border="0" width="800px"> <thead> <tr> </tr> </thead> <tfoot> <tr> <th colspan="15"> </th> </tr> </tfoot> <tbody> <tr> <td width="108"> <input type="text" name="id[]" value="1" style="display:none;"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> <td width="23"> </tr> </tbody> </table>
kod pliku parser.php (wysylka na maila)
<?php $zamowienie['katalogowe'] = $_POST['katalogowy']; $zamowienie['35'] = $_POST['35']; $zamowienie['36'] = $_POST['36']; $zamowienie['37'] = $_POST['37']; $zamowienie['38'] = $_POST['38']; $zamowienie['39'] = $_POST['39']; $zamowienie['40'] = $_POST['40']; $zamowienie['41'] = $_POST['41']; $zamowienie['42'] = $_POST['42']; $zamowienie['43'] = $_POST['43']; $zamowienie['44'] = $_POST['44']; $zamowienie['45'] = $_POST['45']; $zamowienie['46'] = $_POST['46']; $zamowienie['id'] = $_POST['id']; $do = "mojmail@gmail.com"; $email = "mojmail@gmail.com"; $y =""; for( $x = 1; $x <= $id; $x++ ) { $txt .= $y . '<tr><td>' . $x . '</td><td>' . $zamowienie['katalogowe'][$x] . '</td><td>' . $zamowienie['35'][$x] . '</td><td>' . $zamowienie['36'][$x] . '</td><td>' . $zamowienie['37'][$x] . '</td><td>' . $zamowienie['38'][$x] . '</td><td>' . $zamowienie['39'][$x] . '</td><td>' . $zamowienie['40'][$x] . '</td><td>' . $zamowienie['41'][$x] . '</td><td>' . $zamowienie['42'][$x] . '</td><td>' . $zamowienie['43'][$x] . '</td><td>' . $zamowienie['44'][$x] . '</td><td>' . $zamowienie['45'][$x] . '</td><td>' . $zamowienie['46'][$x] . '</td></tr>'; } $temat="Nowe zamowienie Pioko.pl"; $header = "MIME-Versio: 1.0r\n"."Content-type: text/html; charset=UTF-8r\n"; $header .= "From: noreply@asd.pl\n"; $header .= "Cc: $emailr\n"; $header .= "Bcc: $emailr\n"; $body = '<html> <body> <table border="1" width="500"> <tr> <td width="18">LP</td> <td width="95">Nr Katalogowy</td> <td>35</td> <td>36</td> <td>37</td> <td>38</td> <td>39</td> <td>40</td> <td>41</td> <td>42</td> <td>43</td> <td>44</td> <td>45</td> <td>46</td> </tr> ' . $txt . ' </table> </body> </html>'; ?>
Calosc mozna zobaczyc pod adresem http://scyller9.webd.pl/pantofle/form.html jesli ktos nie boi sie paskudnego cssa
