Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Checkbox i Array
pawel.ad
post 23.03.2010, 17:37:23
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Od razu mówię że wiem że w Google jest masa artykułów "How To", i zrobiłem tak jak piszą w każdym z nich, ale nadal nie mogę uzyskać tablicy z formularza.

Kod:
  1. (...)
  2. while($wiersz = mysql_fetch_array($wynik)) {
  3. echo "<input type=\"checkbox\" id=\"team[]\" name=\"team[]\" value=\"".$wiersz['t_id']."\" checked>".$wiersz['t_name'];
  4. };
  5. (...)
  6. $team = $_POST['team'];
  7. print_r($team);


I print_r nie wyświetla mi tablicy, tylko ostatnią zaznaczony "value", tj. nadpisuje wartości dla $_POST['team'] zamiast zrobić tablicę.

Zastanawiałem się czy w echo można używać "[" i "]", ale nie mogłem znaleźć o tym informacji.

Co robię źle?

Ten post edytował pawel.ad 23.03.2010, 17:57:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
sadistic_son
post 23.03.2010, 18:04:42
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Spróbuj tak:
  1. (...)
  2. while($wiersz = mysql_fetch_assoc($wynik)) {
  3. echo '<input type="checkbox" id="team[]" name="team[]" value="'.$wiersz['t_id'].'" checked>'.$wiersz['t_name'];
  4. };
  5. (...)
  6. $team = $_POST['team'];
  7. print_r($team);
Oczywiście musisz zaznaczyć więcej niż jeden checkbox żeby było więcej elementów tablicy. Niezaznaczone checkboxy nie są wysyłane formularzem.

Ten post edytował sadistic_son 23.03.2010, 18:06:05


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
pawel.ad
post 23.03.2010, 18:34:36
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Ale przecież to dokładnie to samo... ;p

Nie działa w każdym razie...
Go to the top of the page
+Quote Post
mortus
post 23.03.2010, 18:35:43
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Twój kod wygląda dobrze, jedynym zastrzeżeniem jest użycie id="team[]", takie coś nie ma w ogóle prawa bytu. Aby zrobić tablicę checkbox-ów wystarczy ustawić dla nich name="team[]". Wtedy w $_POST['team'] na pewno masz tablicę (oczywiście musisz przynajmniej jednego checkbox-a zaznaczyć). Jeżeli nie masz tablicy w $_POST['team'], a wszystko zrobiłeś, tak jak piszesz w pierwszym poście lub tak, jak poradził Ci sadistic_son, to może w którymś miejscu modyfikujesz $_POST['team']? Najlepiej wrzuć cały kod. Poniższy przykład działa bez zarzutu:
  1. <?php
  2. ini_set('display_errors', 1);
  3. if (!empty($_POST) && isset($_POST['team'])) {
  4. print_r($team = $_POST['team']);
  5. }
  6. ?>
  7. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  8. <input type="checkbox" name="team[]" value="barca">barca<br/>
  9. <input type="checkbox" name="team[]" value="arsenal">arsenal<br/>
  10. <input type="checkbox" name="team[]" value="bajern">bajern<br/>
  11. <input type="checkbox" name="team[]" value="milan">milan<br/>
  12. <input type="submit" name="submit" value="Wyślij">
  13. </form>


Ten post edytował mortus 23.03.2010, 18:37:14
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: 14.08.2025 - 11:48