Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przekazywanie Tablicy Poprzez Formularz Polecenie Post
tomekp
post 24.05.2006, 11:26:27
Post #1





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

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


W jaki sposób mogę przez formularz POST przekazać całą tablicę?


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
babejsza
post 24.05.2006, 11:40:54
Post #2





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


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. ?>


Ten post edytował babejsza 24.05.2006, 11:43:00
Go to the top of the page
+Quote Post
tomekp
post 24.05.2006, 12:13:01
Post #3





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

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


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?


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
nospor
post 24.05.2006, 12:30:43
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mozna tablice zserializowac, zapisac np. do hiddena a potem odesrializowac.

http://pl.php.net/manual/pl/function.serialize.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
tomekp
post 24.05.2006, 13:04:49
Post #5





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

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


A czy smarty posiada jakąś wbudowaną funkcję do tego?


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
Ociu
post 24.05.2006, 13:11:37
Post #6





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Niestety nie ma.
Go to the top of the page
+Quote Post
tomekp
post 24.05.2006, 16:08:57
Post #7





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

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


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ś?

Ten post edytował tomekp 25.05.2006, 08:35:43


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
tomekp
post 25.05.2006, 09:47:55
Post #8





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

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


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. ?>


--------------------
escape from the execution is futile.
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: 18.06.2025 - 04:32