Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Sprawdzanie checkboxów
Forum PHP.pl > Forum > PHP
wiciu010
Mam formularz w którym są pola checkbox. Ich ilość jest zmienna gdyż zależy od ilości pozycji w bazie danych. Jak sprawdzić ktore pola zostały zaznaczone? Formularz jest wysyłany metodą POST. Gdyby ilość była ograniczona to sprawa jest prosta ale tak to nie wiem jak to zrobić. Czy do każdego checkboxa dodać to samo name czy różne? Jako value będzie przesyłane odpowiednie ID z MySQL ponieważ będzie mi potrzebne w pliku który odbiera formularz
ayeo
Witaj!

Sprawa jest dość prosta:

  1. <input type = "checkbox" name = "checkbox[1]" value = "TRUE" />
  2. <input type = "checkbox" name = "checkbox[2]" value = "TRUE" />


  1. <?php
  2. array_keys($_POST['checkbox']);  //zwróci  ID zaznaczonych checkboxów (w tym wypadku: 1,2).
  3. ?>


Pozdrawiam!
artur_dziocha
a nie lepiej
  1. <?php
  2. foreach($cos_w_bazie) {
  3. <input type = "checkbox" name = "checkbox[]" value = "$id" />
  4. }
  5. ?>

po wysłaniu
  1. <?php
  2. foreach($_POST['checkbox']){
  3. echo $id;
  4. }
  5. ?>

i w ten sposób wyświetla wszystkie id
później mozna wyświetlić id wszystkich zaznaczonych checkboxów
ayeo
Nie, nie prościej, a już na bank nie wydajniej;
  1. <?php
  2. print_r( array_keys( $_POST['checkbox'] ) ); //wyświetla tablicę zawierającą zaznaczone IDki
  3. ?>


Pozdrawiam!

edit: @artur_dziocha, zedytowałeś posta. Teraz Twoje rozwiązanie ma sens winksmiley.jpg
artur_dziocha
No własnie dzieki:)
Które lepsze rozwiązanie??smile.gif
ayeo
Pewności nie mam, ale wydaje mi się, że $_POST['checkbox']; bedzie zawierał tylko zaznaczone IDki, więc Twoje rozwiązanie jest lepsze i szybsze i najfajniejsze winksmiley.jpg

Pozdrawiam!
artur_dziocha
troche zgryzliwe to bylo chyba:P
ayeo
W żadnym wypadku! Po prostu przyznanie się do błędu bez owijania w bawełnę. Pozdrawiam!
wiciu010
Dzięki wszystkim za pomoc, problem rozwiązany:)
pysio78
Wszystko ładnie pięknie ale jak wyciągnąć z takiej tablicy dane?

Po wykonaniu
Kod
print_r(array_keys($_POST['checkbox']));

i zaznaczeniu 4 checkboxów wyświetla mi się
Kod
Array  (      [0] => 1      [1] => 2      [2] => 3      [3] => 4  )

Wszystko jest oki bo wartości są przekazane prawidłowo ale teraz jak z tej tablicy je wyciągnąć ?
Samo
Kod
echo ($checkbox[0]);

Nic nie daje i nic się nie wyświetla a wg tego powinno zawierać wartość 1!
Powiem, że zapewne jest to proste ale widać zbyt proste i mam pustkę w łepetynie.
artur_dziocha
  1. <?php
  2. echo $_POST['checkbox']['0'];
  3. ?>


  1. <?php
  2. foreach($_POST['checkbox'] as $value){
  3. echo $value;
  4. }
  5. ?>
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.