Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Warunek sprawdzający czy przynajmniej jeden checkbox został zaznaczony.
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Próbuję napisać warunek if, który sprawdzałby czy przynajmniej jeden z poniższych checkbox-ów został zaznaczony. Gdyby chodziło o jeden checkbox, nie byłoby problemu, ale przy czterech nie wiem jak to zrobić.

  1. <td width="20px"><input type="checkbox" name="1" value="samochód 1" /></td>
  2. <td width="20px"><input type="checkbox" name="2" value="samochód 2" /></td>
  3. <td width="20px"><input type="checkbox" name="3" value="samochód 3" /></td>
  4. <td width="20px"><input type="checkbox" name="4" value="samochód 4" /></td>
GoOx
to jest bardzo proste ;p

oto kod:

  1. $nr1 = $_POST['1'];
  2. $nr2 = $_POST['2'];
  3. $nr3 = $_POST['3'];
  4. $nr4 = $_POST['4'];
  5. $i = 0;
  6. if(isset($nr1)) {
  7. $i++;
  8. }
  9. if(isset($nr2)) {
  10. $i++;
  11. }
  12. if(isset($nr3)) {
  13. $i++;
  14. }
  15. if(isset($nr4)) {
  16. $i++;
  17. }
  18. if($i >= 1) {
  19. echo "Zaznaczyłeś co najmniej 1 checkbox";
  20. }
vokiel
  1. <input type="checkbox" name="samochod[1]" value="samochód 1" />
  2. <input type="checkbox" name="samochod[2]" value="samochód 2" />
  3. <input type="checkbox" name="samochod[3]" value="samochód 3" />
  4. <input type="checkbox" name="samochod[4]" value="samochód 4" />


Sprawdź sobie tablicę $_POST po przesłaniu formularza z zaznaczonymi checkboxami i bez zaznaczonych
Szunaj85
Cytat
to jest bardzo proste ;p
Faktycznie o takim rozwiązaniu nie pomyślałem. Co prawda lekko zmodyfikowałem kod, ale działa. Zastanawiam się tylko, czy nie da się go uprościć. blink.gif
GoOx
można skorzystać z pętli for i zamiast przepisywać tego po 4 razy to 1 raz + pętla.
  1. for($i = 1; $i <= 4; $i++) {
  2. $nr[$i] = $_POST[$i];
  3. }
  4. $i2 = 0;
  5. for($i = 1; $i <= 4; $i++) {
  6. if(isset($nr[$i])) {
  7. $i2++;
  8. }
  9.  
  10. if($i >= 1) {
  11. echo "Zaznaczyłeś co najmniej 1 checkbox";
  12. }


nie wiem czy to działa. nie sprawdzałem.
Lorum3
Wszystkie pola dotyczące tego samego pytania, powinny nosić taki znam znacznik name.

Wtedy wystarczy po prostu sprawdzić czy wysłano takowe pole.

  1.  
  2. if( isset( $_POST['name'])){
  3.  
  4. // ...
  5.  
  6. }
  7.  
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.