Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Przesyłanie dynamicznego POSTA
McGoo123
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 22.10.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ł (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




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.
Go to the top of the page
+Quote Post
McGoo123
post
Post #3





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 22.10.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Możesz pokazać jakiś prosty przykład ? (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


  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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:58