Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem - Przesłanie zmiennej tablicowej metodą POST
Forum PHP.pl > Forum > Przedszkole
pawelt
Witam serdecznie..
Czy istnieje jakiś sposób, aby przesłać zmienną tablicową metodą POST?

Wygląda to tak, że w formularzu są pola, które generują się na podstawie zapytań do bazy danych.
Dodatkowo na podstawie danych z kilku zapytań utworzyłem tablicę $moja_tablica.

Do przesłania formularza używam metody POST ponieważ jest to formularz, który po naciśnięciu przycisku wysyłającego odwołuje się do siebie samego - czyli po wysłaniu formularza ponownie ładuje się ten sam plik php.

W kodzie strony, nad formularzem mam instrukcję, która sprawdza czy wciśnięto już przycisk wysyłający formularz - jeśli tak, to własnie w tym momencie potrzebuje odwołać się do mojej tablicy.
Problem pojawia się wtedy, gdyż po takim przesłaniu formularza nie mam już owej tablicy, gdyż tworzy się ona dopiero pod instrukcją sprawdzającą czy formularz został wysłany.

Tak tworzę tablicę wewnątrz formularza:
  1. $tmoja_tablica[$id_nazwa]=$i;


Tablica ma postać:
  1. [35] => 1
  2. [51] => 1
  3. [73] => 0
  4. [26] => 3
  5. ...
  6. )

Próbowałem utworzyć niewidoczne pole input w formularzu:
  1. <input type="hidden" value="' . $moja_tablica . '" name="tab_mozna_del_post" />

ale po takim przesłaniu tablica już "nie działa" - tzn. wygląda to tak, jakby przesyłała się sama informacja o tym, że ta zmienna jest tablicą, a nie zawartość tablicy.

Proszę o pomoc..
Grzesie.k
Przesyłanie tablicy w formularzu:
  1. <?php
  2. if(isset($_POST['tablica'])){
  3. print_r(unserialize($_POST['tablica']));
  4. }
  5.  
  6. $tablica=array(
  7. 32=>1,
  8. 54=>2,
  9. 78=>32
  10. );
  11. $value=serialize($tablica);
  12. ?>
  13. <form method="POST" action="">
  14. <input type="hidden" name="tablica" value="<?=$value?>" />
  15. <input type="submit" />
  16. </form>

lub
  1. <?php
  2. if(isset($_POST['tablica'])){
  3. json_decode(
  4. htmlspecialchars_decode(
  5. $_POST['tablica']
  6. ),
  7. 1 //to array
  8. )
  9. );
  10. }
  11.  
  12. $tablica=array(
  13. 32=>1,
  14. 54=>2,
  15. 78=>32
  16. );
  17. json_encode($tablica)
  18. );
  19. ?>
  20. <form method="POST" action="">
  21. <input type="hidden" name="tablica" value="<?=$value?>" />
  22. <input type="submit" />
  23. </form>

lub
  1. <form method="POST" action="">
  2. <?php
  3. if(isset($_POST['tablica'])){
  4. print_r($_POST['tablica']);
  5. }
  6.  
  7. $tablica=array(
  8. 32=>1,
  9. 54=>2,
  10. 78=>32
  11. );
  12. foreach($tablica as $key=>$value){
  13. echo '<input type="hidden" name="tablica['.$key.']" value="'.$value.'" />';
  14. }
  15. ?>
  16. <input type="submit" />
  17. </form>
pawelt
Super, dzięki wielkie za fatygę.

Zastosowałem pierwszy przedstawiony przez Ciebie sposób i wszystko działa tak jak chciałem.
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.