Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Pobieranie danych z formularza do tablicy asoc.
Flake
post 28.06.2010, 10:43:17
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.03.2010

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


Witam - mam formularz dynamiczny (raz jest w nim 10x pole tekstowe a raz np 4x) - wygląda to tak:

  1. <form method="post" action="pobierz.php">
  2. Imie: <input type="text" name="dane[]" />
  3. Nazwisko: <input type="text" name="dane[]" />
  4. Wiek: <input type="text" name="dane[]" />
  5.  
  6. Imie: <input type="text" name="dane[]" />
  7. Nazwisko: <input type="text" name="dane[]" />
  8. Wiek: <input type="text" name="dane[]" />
  9.  
  10. itd...
  11.  
  12. <input type="submit" value="pobierz dane" />
  13. </form>


I teraz moje pytanie: Jak pobrać te dane do tablicy asocjacyjnej która będzie wyglądała tak:

  1. (
  2. [0] => Array
  3. (
  4. [imie] => Jan
  5. [nazwisko] => Kowalski
  6. [wiek] => 23
  7. )
  8.  
  9. [1] => Array
  10. (
  11. [imie] => Jan
  12. [nazwisko] => Nowak
  13. [wiek] => 24
  14. )
  15. itd...


Póki co udało mi się pobrać dane do takiej tablicy:

  1. [0] => Jan
  2. [1] => Kowalski
  3. [2] => 23
  4. [3] => Jan
  5. [4] => Nowak
  6. [6] => 24
  7. itd...
  8. )


niestety ciężko jest mi operować na danych z 2giej tablicy więc chciałem to zapisać do tablic asocjacyjnych zagnieżdżonych - no i nie wiem jak to zrobić - jakieś sugestie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
tehaha
post 28.06.2010, 10:47:15
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


to zamiast dawać name=dane[] do każdego zrób: imie[], nazwisko[], wiek[], a potem w pętli przepisz to do takiej tablicy jak chcesz
Go to the top of the page
+Quote Post
Flake
post 28.06.2010, 13:15:07
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.03.2010

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


No ok tylko nie bardzo wiem gdzie użyć tej pętli

myślałem o takiej konstrukcji:
  1. $tablica = array(
  2. for($n=0 ; n jest rowne wielkosci tablicy; $n++)
  3. {"nazwa" => nazwa[$n],
  4. "ilosc" => ilosc[$n],
  5. "cena" => cena[$n]
  6. });



Niestety nie da się tak zrobić i nie mam pomysłu co z tym dalej
Go to the top of the page
+Quote Post
tehaha
post 28.06.2010, 13:25:08
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


odpal sobie ten kod i przeanalizuj jak działa:
  1. <?php
  2. if(isset($_POST['submit']) && is_array($_POST['imie']) && is_array($_POST['nazwisko']) && is_array($_POST['wiek']))
  3. {
  4. $num = count($_POST['imie']);
  5. $all_data = array();
  6. for($i=0;$i<$num;++$i)
  7. {
  8. $imie = $_POST['imie'][$i];
  9. $nazwisko = $_POST['nazwisko'][$i];
  10. $wiek = $_POST['wiek'][$i];
  11. $all_data[] = array('imie'=>$imie, 'nazwisko'=>$nazwisko, 'wiek'=>$wiek);
  12. }
  13. print_r($all_data);
  14. }
  15.  
  16. ?>
  17. 1.
  18. <form method="post" action="">
  19. 2.
  20. Imie: <input type="text" name="imie[]" />
  21. 3.
  22. Nazwisko: <input type="text" name="nazwisko[]" />
  23. 4.
  24. Wiek: <input type="text" name="wiek[]" />
  25. 5.
  26.  
  27. 6.
  28. Imie: <input type="text" name="imie[]" />
  29. 7.
  30. Nazwisko: <input type="text" name="nazwisko[]" />
  31. 8.
  32. Wiek: <input type="text" name="wiek[]" />
  33. 9.
  34.  
  35. 10.
  36. itd...
  37. 11.
  38.  
  39. 12.
  40. <input type="submit" name="submit" value="pobierz dane" />
  41. 13.
  42. </form>


$all_data to już ta poukładana tablica
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:18