Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] JAk zrobić, aby do inputa można było tylko wkleić 2 cyfry?, (żeby po przetworzeniu skryptu albo zaakceptowało, albo wywaliło błąd)
scretch
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (20%)
X----


Witam. Chcę, aby cokolwiek ktoś wpisał do inputa, to żeby skrypt uznawał tylko dwie cyfry. Jak to zrobić (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




  1. <input type="text" name="pole" maxlength="2" />
Go to the top of the page
+Quote Post
scretch
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (20%)
X----


nie... może trochę źle się wyraziłem. CHodzi mi o to, że do inputa można wpisać tysiąc cyfr i liter, ale że skrypt przyjmie tylko dwie liczby.

222 i 455
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




W momencie odbierania danych formularza (zakładam, że $_POST), rozbijasz ciąg przez explode. Następnie wyciągasz dwie pierwsze liczby (zakładam, że walidujesz pole pod kątem wprowadzanych danych, a separatorem jest przecinek).

  1. <?php
  2. $pole = $_POST['pole'];
  3.  
  4. if(strlen($pole) > 0) {
  5. $liczby = explode(',',$pole);
  6. for($i=0,$count=count($liczby);$i<$count;$i++) {
  7. if($i < 2)
  8. echo 'Liczba #'.($i + 1).' '.$liczby[$i].'<br />';
  9. }
  10. }
  11. ?>
Go to the top of the page
+Quote Post
scretch
post
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (20%)
X----


ja nie chcę mniejszy od dwóch tylko dane liczby:

222 i 455, żeby tylko przyjmował !
Go to the top of the page
+Quote Post
gladiror
post
Post #6





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


Moze chodzi Ci o funkcje ereg() (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ona sprawdza czy w danej zmiennej znajduje się jakiś ciąg znaków??
Go to the top of the page
+Quote Post
batman
post
Post #7





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




if($i < 2) nie oznacza, że będzie tylko 0 i 1 wyświetlał. 0 i 1 są indeksami tablicy, a wartości masz tutaj $liczby[$i]. Są to dwie pierwsze liczby z formularza. A jeśli chcesz by wyświetlił liczby 222 i 455, to robisz takie coś:

  1. <?php
  2. $pole = $_POST['pole'];
  3.  
  4. if(strlen($pole) > 0) {
  5. $liczby = explode(',',$pole);
  6. for($i=0,$count=count($liczby);$i<$count;$i++) {
  7. if($liczby[$i] == 222 || $liczby[$i] == 455)
  8. echo 'Liczba #'.($i + 1).' '.$liczby[$i].'<br />';
  9. }
  10. }
  11. ?>
Go to the top of the page
+Quote Post
scretch
post
Post #8





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 27.06.2006

Ostrzeżenie: (20%)
X----


nie dokładnie to, ale jak przerobiłem to działa.
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: 21.09.2025 - 12:23