Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zmienna $_REQUEST zawierająca tablicę, a <SELECT, zmienna $_REQUEST zawierająca tablicę, a
damazy76
post 21.01.2006, 14:05:38
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2006

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


Witam wszystkich,

Jeśli chcemy odebrać metodą GET tablicę, przekazujemy do skryptu argumenty następująco:
skrypt.php?arg[1]=xxx&arg[2]=zzz

Jeśli w formularzu umieścimy:
<SELECT NAME="arg" multiple> itd.,

otrzymujemy:
skrypt.php?arg=xxx&arg=zzz,
a $_REQUEST['arg'] nie jest tablicą - zawiera jedną wartość.

Jak zebrać w php wartości z listy wielokrotnego wyboru?.

Z góry dziękuję i pozdrawiam
Go to the top of the page
+Quote Post
Wave
post 21.01.2006, 14:14:52
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


Kod
<SELECT NAME="arg[0]">zzz
<SELECT NAME="arg[1]">yyy
<SELECT NAME="arg[2]">xxx

O to chodzi?

Ten post edytował Wave 21.01.2006, 14:15:30
Go to the top of the page
+Quote Post
nospor
post 21.01.2006, 15:04:19
Post #3





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




jezeli masz selecta typu multiple, to musi mu podac nazwe tablicową, czyli z [] na koncu:
  1. <SELECT NAME="arg[]" multiple> itd.,


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

"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
damazy76
post 21.01.2006, 19:07:48
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2006

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


Wave, nie w tym rzecz, nie chcę wyświetlić kilku selectów zwracających po jednej wartości. Wyświetlam jedną listę, z możliwością wyboru kilku odpowiedzi. Problem polega na tym, jak odebrać w php listę wyborów dokonanych przez użytkownika, NA JEDNEJ liście.
Standardowo przeglądarka generuje url zgodnie z poniższym przykładem.

Robię tak:
  1. <form method="GET" action="test.php">
  2. <select size="10" name="arg" multiple>
  3. <option value="1">wart1</option>
  4. <option value="2">wart2</option>
  5. <option value="3">wart3</option>
  6. <option value="4">wart4</option>
  7. </select><input type="submit" value="Prześlij" name="B1"><input type="reset" value="Resetuj" name="B2"></p>
  8. </form>


zatwierdzenie tego, daje nam:
test.php?arg=1&arg=2&arg=3&arg=4&B1=Zapisz
i to wchodzi sobie, np. w perlu jako tablica. W php mamy tylko jedną wartość, ostanią z listy.

Nospor, twój przykład daje tylko tyle, ze do nazwy argumentu dochodzą nawiasy, ale dalej jest to lista np. 4-ech argumentów, o identycznej nazwie. Przeglądarka nie uzupełnia indeksów. Po prostu wali to co podałeś w nazwie i tyle.

Pytanie brzmi zatem, jak przy użyciu php odczytać wszystkie wartości z w.w. URL-a, ewentualnie jak przerobić mój html.
Go to the top of the page
+Quote Post
crash
post 21.01.2006, 19:17:20
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Gdybyś poświęcił chwilę na szukanie to dowiedziałbyś się, że wystarczy dodać do nazwy [] żeby przesłać wszystkie dane jako tablicę.


--------------------
Go to the top of the page
+Quote Post
damazy76
post 21.01.2006, 19:25:00
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2006

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


Dobrze, dobrze, wszystko gra.
Przepraszam, Crash ma rację.
To działa prawidłowo.

Byłem przekonany, że konieczne jest umieszczenie jeszcze indeksu, a nie samych nawiasów, więc błędnie zakładałem, że nospor dokonał skrótu myślowego.

Dzięki panowie.
Go to the top of the page
+Quote Post
nospor
post 21.01.2006, 19:25:50
Post #7





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




@damazy ja nie wiem jak ty wykorzystales moj kod, ale zrobiles to źle. to co podalem jest prawidlowe. Masz przyklad. dziwnym trafem on u mnie dziala

  1. <form method="get">
  2.     <select name="test[]" multiple="multiple">
  3.         <option value="1">1</option>
  4.         <option value="2">2</option>
  5.         <option value="3">3</option>
  6.     </select>
  7.     <input type="submit" />
  8. </form>
  9. <?
  10. print_r($_GET['test']);
  11. ?>


edit: tak to jest jak sie pisze w tym samym momencie winksmiley.jpg


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

"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
damazy76
post 21.01.2006, 19:28:34
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2006

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


No już się właśnie poprawiłem. Miałeś rację, piszę przecie ;-), dziękuję.
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.07.2025 - 03:59