Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyciąganie danych z "dynamicznie" tworzonego formularza.
Forum PHP.pl > Forum > PHP
kononowicz
witam. mam problem z wyciąganie danych z formularza. Na początku mojego skryptu okresla sie ile razy ma zostac wyswietlony formularz a ta ilosc zapisywana jest w $_SESSION['il_poz']. dalej wyswietlany jest formularz iles tam razy czyli:

  1. <?php
  2. while($i != $_SESSION['il_poz'])
  3.  {
  4.  $i++;
  5.  <form method="post" action="logowanie.php?id=wyslij" >
  6.  <fieldset><legend>nr '.$i.'.</legend>
  7.  
  8.  <p><label>Nazwa materiału:</label>
  9.  <input type="text" name="nazwa'.$i.'" class="" value="" /> </p>
  10.  
  11.  <p><label>Gatunek:</label>
  12.  <input type="text" name="gatunek'.$i.'" class="" value="" /></p>
  13.  
  14.  <p><label>Ilość:</label>
  15.  <input type="text" name="ilosc'.$i.'" class="" value="" /></p>
  16.  
  17.  <p><label>Sugerowana cena sprzedaży:</label>
  18.  <input type="text" name="cena'.$i.'" class="" value="" /></p>
  19.  
  20.  <p><label>wymiary [mm]:</label>
  21.  <input type="text" name="wymiary'.$i.'" class="" value="" /></p>
  22.  
  23.  <p><label>sugerowany termin realizacji:</label>
  24.  <input type="text" name="termin'.$i.'" class="" value="" /></p>
  25.  
  26.  <p><label>Uwagi:</label>
  27.  <textarea name="uwagi'.$i.'" id="" cols=" " rows=" "></textarea>
  28.  </p>
  29.  
  30.  </fieldset>';
  31.  }
  32.  
  33. <p>
  34. <input type="submit" name="ok" value="ok" class="przycisk" />
  35. </p>
  36. </form>';
  37. ?>


ale teraz nie wiem jak wyciagnac te dane z tego formularza, zeby z wszystkich formularzy zapisac dane do bazy.
nowotny
Pozmieniaj sobie nazwy na coś w stylu
  1. name="forms[$i][nazwa]"

W pliku logowanie.php zrób sobie print_r($_POST); i obejrzyj wyniki...
nospor
Cytat
zeby z wszystkich formularzy zapisac dane do bazy.
Nie da sie. MOzna na raz wyslac tylko jeden formularz.
Twoje dane powinny byc zawarte w jednym formularzu
kononowicz
moze zle sie wyraziłem.. wysyłam w sumie jeden formularz tylko jego wielkosc zalezy od tej zmiennej sesyjnej. nie dołączam formularza tylko element dodatkowy... pewną sekwencje formularza...
nowotny
Cytat(kononowicz @ 14.02.2008, 13:22:19 ) *
wysyłam w sumie jeden formularz tylko jego wielkosc zalezy od tej zmiennej sesyjnej. nie dołączam formularza tylko element dodatkowy... pewną sekwencje formularza...

Wg. kodu powyżej, faktycznie robisz kilka formularzy... przenieś sobie '<form method="post" action="logowanie.php?id=wyslij" >' przed pętlę...
kononowicz
takie cos wychodzi po zapełnieniu 2 razy tego elementu <fieldset> (pierwsza sekwencja byłą wypełniona danymi kolejno 11,12,13,14,15,16,17 ,a druga 21,22,23,24,25,26,27) i wychodzi takie cos (jakby tylko drugi formularz został wyswietlony):
Array
(
[forms] => Array
(
[$i] => Array
(
[nazwa] => 21
[gatunek] => 22
[ilosc] => 23
[cena] => 24
[wymiary] => 25
[termin] => 26
[uwagi] => 27
)

)

[ok] => ok
)
  1. <?php
  2. print '<form method="post" action="logowanie.php?id=wyslij" >';
  3. while($i != $_SESSION['il_poz'])
  4.  {
  5.  $i++;
  6.  
  7.  <fieldset><legend>nr '.$i.'.</legend>
  8.  
  9.  <p><label>Nazwa materiału:</label>
  10.  <input type="text" name="forms[$i][nazwa]" class="" value="" /> </p>
  11.  
  12.  <p><label>Gatunek:</label>
  13.  <input type="text" name="forms[$i][gatunek]" class="" value="" /></p>
  14.  
  15.  <p><label>Ilość:</label>
  16.  <input type="text" name="forms[$i][ilosc]" class="" value="" /></p>
  17.  
  18.  <p><label>Sugerowana cena sprzedaży:</label>
  19.  <input type="text" name="forms[$i][cena]" class="" value="" /></p>
  20.  
  21.  <p><label>wymiary [mm]:</label>
  22.  <input type="text" name="forms[$i][wymiary]" class="" value="" /></p>
  23.  
  24.  <p><label>sugerowany termin realizacji:</label>
  25.  <input type="text" name="forms[$i][termin]" class="" value="" /></p>
  26.  
  27.  <p><label>Uwagi:</label>
  28.  <textarea name="forms[$i][uwagi]" id="" cols=" " rows=" "></textarea>
  29.  </p>
  30.  
  31.  </fieldset>';
  32.  }
  33.  
  34. <p>
  35. <input type="submit" name="ok" value="ok" class="przycisk" />
  36. </p>
  37. </form>';
  38.  
  39. }
  40. ?>
nowotny
Z tego wynika że zrobiłeś to nieumiejętnie... :/ ja pokazałem tylko przykład... do ciebie należała poprawna implementacja...
  1. <input type="text" name="forms['.$i.'][nazwa]" class="" value="" />
  2. ...
  3. itd...
kononowicz
Cytat(nowotny @ 14.02.2008, 13:38:29 ) *
Z tego wynika że zrobiłeś to nieumiejętnie... :/ ja pokazałem tylko przykład... do ciebie należała poprawna implementacja...
  1. <input type="text" name="forms['.$i.'][nazwa]" class="" value="" />
  2. ...
  3. itd...


sorry.. teraz faktycznie działa i pokazuje:

Array
(
[forms] => Array
(
[1] => Array
(
[nazwa] => 11
[gatunek] => 12
[ilosc] => 13
[cena] => 14
[wymiary] => 15
[termin] => 16
[uwagi] => 17
)

[2] => Array
(
[nazwa] => 21
[gatunek] => 22
[ilosc] => 23
[cena] => 24
[wymiary] => 25
[termin] => 26
[uwagi] => 27
)

)

[ok] => ok
)

a teraz jak odniesc sie (jak go wyswietlic) do elementu o wartosci np. 24 questionmark.gif czyli druga sekwencja formularza - input o nazwie cena. jak wyswietlic elementy tablicy wielowymiarowej z formularza. $_POST[forms[0][nazwa]]; - bo tak nie mozna :/
nowotny
Cytat(kononowicz @ 14.02.2008, 13:44:59 ) *
a teraz jak odniesc sie (jak go wyswietlic) do elementu o wartosci np. 24 questionmark.gif czyli druga sekwencja formularza - input o nazwie cena. jak wyswietlic elementy tablicy wielowymiarowej z formularza. $_POST[forms[0][nazwa]]; - bo tak nie mozna :/


  1. <?php
  2. $_POST['forms'][2]['cena'];
  3. ?>

Tu się kłaniają podstawy pracy z tablicami wielowymiarowymi... Poczytaj trochę o nich i dokształć się...
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.