Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Warunek if dla formularza.
Szunaj85
post
Post #1





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


Mam formularz i w nim trzy pola. Powiedzmy: $pole_1, $pole_2, $pole_3.
Chcę żeby osoba uzupełniająca formularz wypełniła minimum 2 z 3 pól. Nie ma znaczenia które pola wypełni.
Jak napisać taki warunek? "Jeżeli nie wypełniono minimum 2 z 3 pól wyświetl komunikat".

Ten post edytował Szunaj85 12.08.2010, 13:29:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Marteen
post
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 2
Dołączył: 2.04.2010

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


Nazwij zmienne tak: $pole[1] itd.
  1. $licznik = 1;
  2. while ($licznik <= 3) { // powtarza 3 razy - dla każdej zmiennej
  3. if ($pole[$licznik] == '') {unset($pole[$licznik]);} // jeśli zmienna jest pusta - usuwa ją
  4. $licznik = $licznik + 1;
  5. }
  6. if (count($pole) >= 2) { // ilość pól z zawartością
  7. echo 'Wypelnione sa minimum 2 pola.';
  8. } else {
  9. echo 'wypelnione sa mniej niż 2 pola!';
  10. }
  11.  

spróbuj.

Ten post edytował Marteen 12.08.2010, 13:42:49
Go to the top of the page
+Quote Post
skarabe.pl
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 49
Dołączył: 29.07.2010

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


  1. if (count($_POST) - count(array_filter($_POST)) > 1) {
  2. echo 'Error!';
  3. }

Zadziała jeżeli cały formularz jest zbudowany z takich pól.
Go to the top of the page
+Quote Post
Marteen
post
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 2
Dołączył: 2.04.2010

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


Każde pole dodaj do tablicy w zmiennej $pole:

  1. $pole[1] = $_POST['pole_formularza_1'];
  2. $pole[2] = $_POST['pole_formularza_2'];
  3. $pole[3] = $_POST['pole_formularza_3'];

a następnie wykonaj to, co napisałem wcześniej.

Ten post edytował Marteen 12.08.2010, 13:54:33
Go to the top of the page
+Quote Post
lDoran
post
Post #5





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


W domu jeszcze sprawdzę, ale chyba jest dobrze:

  1. <?php
  2. $tab = array($_POST['pole_1'], $_POST['pole_2'], $_POST['pole_3']);
  3. $count = 0;
  4.  
  5. for($i = 0; $i < 3; $i++)
  6. {
  7. if(i$tab[i] 1 != '')
  8. $count += 1;
  9. }
  10.  
  11. if($count < 2)
  12. echo 'Wypełnij co najmniej dwa pola';
  13. ?>


EDIT:
Sprawdziłem wszystko działa [;

Ten post edytował lDoran 12.08.2010, 18:16:12
Go to the top of the page
+Quote Post
Szunaj85
post
Post #6





Grupa: Zarejestrowani
Postów: 392
Pomógł: 7
Dołączył: 11.05.2008

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


lDoran wiem, że można to w taki sposób zrobić - czyli pętle, tablice, ale czy nie dałoby się to ograniczyć do samego warunku if?

Ten post edytował Szunaj85 16.08.2010, 12:06:11
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:09