![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym zadać kilka pytań odnośnie formularza, a właściwie warunków w PHP, które mają sprawdzać jego pola.
1. Mam trzy pola i teraz jak napisać warunek, który będzie wyglądał tak. Jeżeli użytkownik uzupełni którekolwiek z trzech pól (czyli jedno lub dwa ze wszystkich pól) wyświetli mu się komunikat, że nie uzupełnił wszystkich pól? 2. Kolajna sprawa to weryfikacja jednego pola, która dotyczy poprawności wpisanej temperatury, ale z pewnego zakresu (od minusowej do plusowej). Problemu by nie było gdyby były to same liczby. Jednak użytkownicy mogą wpisywać np. "20°C", "20 °C", "20 stopni celcjusza", "-10°C", "- 10 °C", itp. Jak za pomocą warunku pierw spradzić czy w ogóle jakaś liczba jest wisana, wyodrębnić tą liczbę i sprawdzić czy mieści się w zdefiniowanym zakresie liczb?
Powód edycji: [wookieb]:
-------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 280 Pomógł: 46 Dołączył: 23.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
1.
2. Ja bym zrobił tak, że wpisuje się samą liczbę a obok input'a napisał °C. [ ]°C I sprawdzanie z jednym ifem:
Nie wiem czy zadziała z minusem bo nigdy tak nie robiłem - nawet nie wiem czemu. Pozdrawiam. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 392 Pomógł: 7 Dołączył: 11.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za rozwiązanie do pierwszego pytania.
Cytat Ja bym zrobił tak, że wpisuje się samą liczbę a obok input'a napisał °C. Oczywiście też myślałem nad takim rozwiązaniem, ale w moim przypadku to chyba nie najlepszy pomysł. Mi przychodzą na myśl wyrażenia regularne. Niestety nie jestem w nich zbyt dobry. ![]() -------------------- Jeśli Ci pomogłem wciśnij
![]() ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za rozwiązanie do pierwszego pytania. Oczywiście też myślałem nad takim rozwiązaniem, ale w moim przypadku to chyba nie najlepszy pomysł. Mi przychodzą na myśl wyrażenia regularne. Niestety nie jestem w nich zbyt dobry. ![]() ja najpierw bym sprawdził czy podał samą liczbę (tak - wiadomo, nie ma problemu), jeśli użytkownik dopisał także coś w stylu "20°C", "20 °C", "20 stopni celcjusza" to pobrać z tego liczbę, zmienić POST, ale formularza jeszcze nie przepuszczaj tylko daj komunikat w stylu 'wartości niektórych pól zostały zmieniony, potwierdź zmiany' Ten post edytował r4xz 8.01.2012, 12:25:23 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@Evinek: Zdaje się, że Twoja metoda nie przejdzie, ponieważ pola tekstowe formularza HTML są wysyłane zawsze, a jeśli nie wpisze się wartości, to ich wartość to po prostu pusty łańcuch znaków. Niemniej jednak są one ustawione (ang. set) zatem isset() zawsze zwróci prawdę. Warunek z funkcją isset() trzeba zatem rozbudować, albo alternatywnie użyć funkcji empty():
Swoją drogą tematów na ten temat na forum.php.pl było sporo. Co do drugiego problemu, to użytkownik raczej nie powinien mieć aż tak szerokich możliwości, a jednostka powinna być odgórnie określona. Jeśli jednak użytkownik ma taką możliwość, to wyrażenia regularne mogą się tutaj sprawdzić wyśmienicie:
Jeśli tylko użytkownik nie wpisze czegoś innego, co oczywiście można kontrolować za pomocą zmiennej $matched. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 21:26 |