Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie Tablicy Poprzez Formularz Polecenie Post
Forum PHP.pl > Forum > PHP
tomekp
W jaki sposób mogę przez formularz POST przekazać całą tablicę?
babejsza
np. tak:

  1. <?php
  2. <input type=checkbox name=tablica[] value=0>
  3. <input type=checkbox name=tablica[] value=1>
  4. <input type=checkbox name=tablica[] value=2>
  5. <input type=checkbox name=tablica[] value=3>
  6. ?>


A potem po przesłaniu odczytujesz to:

  1. <?php
  2. for($i=0; $i<=count($_POST['tablica']); $i++){
  3.  echo $tablica[$i];
  4. }
  5. ?>
tomekp
Czyli żeby przekazać to trzeba rozpisać poprostu tablice? nie ma jakiejś innej możliwości?
Może ktoś wie czy w smarty jest jakaś funkcja do tego?
nospor
mozna tablice zserializowac, zapisac np. do hiddena a potem odesrializowac.

http://pl.php.net/manual/pl/function.serialize.php
tomekp
A czy smarty posiada jakąś wbudowaną funkcję do tego?
Ociu
Niestety nie ma.
tomekp
Próbuje działać z tym serialize, napisałem taki kod, ale coś nie działa tak jak należy.
  1. <?php
  2. $produkty = $_POST["faktura"];
  3.  
  4. if (sizeof($produkty) == 0) {
  5. $produkty = array();
  6. }
  7.  
  8. unserialize($produkty);
  9. ?><pre><?print_r($produkty);?></pre><?
  10. echo sizeof($produkty);
  11.  
  12. if ($_POST['produkt_magazyn'] != 0) {
  13. $dane = mysql_fetch_assoc(sql("SELECT * FROM magazyn WHERE id = $_POST[produkt_magazyn]';"));
  14. $dane['ilosc_sztuk'] = $_POST['ilosc_sztuk'];
  15. $produkt = array();
  16. array_push($produkt,$dane);
  17. array_push($produkty,$produkt);
  18. unset($_POST['produkt_magazyn']);
  19. unset($_POST['ilosc_sztuk']);
  20. }
  21. ?><pre><?print_r($_POST);?></pre><?
  22. $_POST["faktura"] = serialize($produkty);
  23. ?>


Mógłby ktoś doradzić coś?
tomekp
Zamotałem się z tym wszystkim, przepraszam, za podwójny post.
Rozwiązanie wygląda następująco:
  1. <?php
  2. [snip]
  3. $_POST["faktura"] = unserialize($_POST["faktura"]);
  4. $produkty = $_POST["faktura"];
  5.  
  6. if (!is_array($produkty)) {
  7. $produkty = array();
  8. }
  9.  
  10. if ($_POST['produkt_magazyn'] != 0) {
  11. $dane = mysql_fetch_assoc(sql("SELECT * FROM magazyn WHERE id = '$_POST[produkt_magazyn]';"));
  12. $dane['ilosc_sztuk'] = $_POST['ilosc_sztuk'];
  13. array_push($produkty,$dane);
  14. unset($_POST['produkt_magazyn']);
  15. unset($_POST['ilosc_sztuk']);
  16. }
  17.  
  18. $_POST["faktura"] = serialize($produkty);
  19. [snip]
  20. ?>
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.