utworzyłam formularz, którego część może zostać powielona przez użytkownika. Standardowo w formularzu występuje zestaw pól dotyczących jednego dostawcy, ale użytkownik może kliknąć "Dodaj dostawcę" i zestaw pól pojawi się ponownie, tyle ile użytkownik doda. Nie wiem jednak przesłać te dynamicznie tworzone pola do bazy danych. Utworzyłam dodatkową tabelę w której id z głównej tabeli przypisane będą wartości dla dostawców, ale najwyraźniej pętla użyta w submit.php nie działa, bo w bazie danych pojawia sie tylko jeden nowy wiersz z ostatnim dostawcą.
Dołączam kod i z góry dziękuję za wszelkie rady.
ps. To moje początki z php więc proszę o wyrozumiałość
<?php if ($result = $mysqli->query("SELECT id FROM job_order ORDER BY id")) { /* determine number of rows result set */ $row_cnt = $result->num_rows; /* close result set */ $result->close(); } $n =0; ?> <form action="submit.php" method="POST"> <fieldset name="Supplier Accounts" > <div id="supplier"> <?php ++$n;?> <table class="full" cellspacing="0"> <tr> <td colspan="2" class="bordered"> <label>Supplier</label><br/><input type="text" name="supplier" value=""></td> <td colspan="2" class="bordered"><label>Cost</label><br/><input type="text" name="cost" value=""></td> <td colspan="2" class="bordered"> <label>Cost Plus Tax</label><br/><input type="text" name="cost_plus_tax" value=""> </td></tr> </table> </div> </fieldset> <button type="button" name="Submit" onclick="duplicate();">Add supplier</button> <input type="submit" name="Submit" value="Save"> </form> <script> var i = 0; var original = document.getElementById('supplier'); function duplicate() { var clone = original.cloneNode(true); // "deep" clone clone.id = "supplier" + ++i; // or clone.id = ""; if the divs don't need an ID original.parentNode.appendChild(clone); } </script>
submit.php:
{ } else { $order_id = $_POST['order_id']; $supplier=$_POST['supplier']; $cost= $_POST['cost']; $cost_plus_tax= $_POST['cost_plus_tax']; $supplier_invoice_no= $_POST['supplier_invoice_no']; $sup_issued_on= $_POST['sup_issued_on']; $n=$_POST['n']; }; $x=0; while($x <= $n){ $x++; $sql3 = "INSERT INTO suppliers (parent_id, supplier, cost, cost_plus_tax, invoice_no, issued_on ) VALUES ('$order_id','$supplier', '$cost', '$cost_plus_tax', '$supplier_invoice_no', '$sup_issued_on')"; }