Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przesyłanie dynamicznego POSTA
Forum PHP.pl > Forum > Przedszkole
McGoo123
Hej!

Mam taki problem, muszę przedstawić to na przykładzie bo inaczej się nie da:
Na index.php wyciągam z bazy liste userów i liste produktów, które tworzą się dynamicznie, całość umieszczam w formularzu. Wszystkie te dane chce powiązać ze sobą, np. User 1 będzie miał przypisanie 10 produktów. Problem leży w tym że nie mam pomysłu jak pobrać dane z tego formularza, przecież nie wiem ile będzie tych postów, bo i userów i produktów może być "n".

Standardowo (przykład poniżej) wiemy ile pól będzie w wysłanych i ile odbierzemy. A w tym wypadku nie bardzo.

  1. <form name="add_product" action="<?php getenv(REQUEST_URI)?>" method="post">
  2. <tr><td style="border-bottom:1px dotted #666;"></td><td style="border-bottom:1px dotted #666;"><em>Podstawowe informacje o produkcie</em></td></tr>
  3. <tr><td class="text_align_r"><strong>Nazwa produktu : </strong></td><td><input type="text" name="product_name" /></td></tr>
  4. <tr><td class="text_align_r"><strong>Kategoria : </strong></td><td><input type="text" name="category" /></td></tr>
  5. </td></tr>
  6. <tr><td></td><td></td></tr>
  7. <tr><td style="border-bottom:1px dotted #666;border-top:1px dotted #666;"></td><td style="border-bottom:1px dotted #666;border-top:1px dotted #666;"><em>Opis produktu</em></td></tr>
  8. <tr><td></td><td>
  9. <textarea id="elm1" name="kod" rows="25" cols="80" style="width:400px">
  10. <br />
  11. <input type="reset" name="reset" value="Reset" />
  12. </td></tr>
  13. <tr>
  14. <td></td><td><input type="submit" value="OK" name="add_product" /></td>
  15. </tr>
  16. </table>
  17. </form>


  1. <?php
  2. if($_POST['add_product']){
  3. $product_name=$_POST['product_name'];
  4. $category=$_POST['category'];
  5. $product_activ=$_POST['product_activ'];
  6. $kod=$_POST['kod'];
  7.  
  8. $mysql = new mysql;
  9. $mysql -> ustawMysql("localhost", "root", "krasnal", "panel", "INSERT INTO products (product_name, type,  active, product_content) VALUES('$product_name', '$category', '$product_activ', '$kod')");
  10. $mysql -> add();
  11. }
  12. ?>


Macie jakiś pomysł questionmark.gif sciana.gif
blooregard
Wszystkie dane przekazywane z POST-a musisz przesłać jako tablice:

zamiast nazwy pola np.

name="imie",

dajesz

name="imie[ <?php tu wstawiasz np. id usera, takie same dla wszystkich pól formularza jego dotyczących?>]"



A w skrypcie obsługującym formularze jedziesz foreach-em i z każdej tablicy z POST-a wyciągasz sobie odpowiednie dane posługując się tym unikalnym id jako indeksem tej tablicy.
McGoo123
Możesz pokazać jakiś prosty przykład ? wstydnis.gif
vokiel
  1. <input type="text" name="product_name[]" value="1" />
  2. <input type="text" name="product_name[]" value="2" />
  3. <input type="text" name="product_name[]" value="3" />
  4. <input type="text" name="product_name[]" value="4" />
  5. <input type="text" name="product_name[]" value="5"/>


a potem w php:
  1. <?php
  2. $products=$_POST['product_name'];
  3. // patrzysz co się dzieje (o masz tablice wszystkich inputów :) )
  4. print_r($products);
  5. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.