Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][JavaScript][PHP] Tylko cyfry
@rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


Mam trzy pola w które należy wpisywać liczby:

  1. Liczba gier|input name=ile_gier
  2. wiek użytkownika|input name=wiek
  3. Liczba filmów|input name=ile_filmow

Sprawdzam czymś takim czy pola są numeryczne:
  1. if(is_numeric($_POST['wiek']))
  2. {echo 'pole wiek użytkownika się zgadza';}
  3. else{echo 'pole wiek użytkownika powinno zawierać tylko cyfry lub liczby';}
  4. if(is_numeric($_POST['ile_filmow']))
  5. {echo 'pole liczba filmów się zgadza';}
  6. else{echo 'pole Liczba filmów powinno zawierać tylko cyfry lub liczby';}
  7. if(is_numeric($_POST['ile_gier']))
  8. {echo 'pole liczba gier się zgadza';}
  9. else{echo 'pole liczba gier powinno zawierać tylko cyfry lub liczby';}

da rade to jakoś prościej/optymalniej sprawdzić? bo przy sprawdzaniu 150 pól to ten kod urośnie że...
A może dodatkowo coś co już na poziomie wprowadzania danych zablokuje wprowadzanie innych znaków niż cyfry?

Ten post edytował @rtur 9.09.2012, 21:02:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Porządnie się to powinno zrobić tak:

1. Najpierw HTML 5:
  1. <input type="number" name="..." ...>


2. Następnie zabezpieczenie JS: wertujesz po wszystkich elementach(pętla) <input> sprawdzając czy pole type==number i jeśli tak to sprawdzasz czy to jest liczba i wysyłasz odpowiednie komunikaty

3. Na końcu PHP: tylko używając pętli a nie tylko if-ów
Pseudokod - pisane na szybko:
  1. tablica_name = ['wiek', 'ile_filmow']; // pole z $_POST - czyli atrybut name
  2. tablica_text = ['wiek_użytkownika', 'liczba filmów']; // nazwa pola
  3. petla( tablica_name -> i){
  4. if( czyLiczba( $_POST[ tablica_name[i] ] ){
  5. wyswietl('Pole '.tablica_text[i].' jest liczbą');
  6. } else {
  7. wyswietl('Pole '.tablica_text[i].' nie jest liczbą');
  8. }
  9. }
Go to the top of the page
+Quote Post
bpskiba
post
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Chyba jeszcze za wcześnie na piątkę. Firefox nie obsługuje, IE nie obsługuje......

http://html5test.com/
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 09:16