Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] JAk zrobić, aby do inputa można było tylko wkleić 2 cyfry?
Forum PHP.pl > Forum > Przedszkole
scretch
Witam. Chcę, aby cokolwiek ktoś wpisał do inputa, to żeby skrypt uznawał tylko dwie cyfry. Jak to zrobić questionmark.gif?
batman
  1. <input type="text" name="pole" maxlength="2" />
scretch
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
batman
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. ?>
scretch
ja nie chcę mniejszy od dwóch tylko dane liczby:

222 i 455, żeby tylko przyjmował !
gladiror
Moze chodzi Ci o funkcje ereg() questionmark.gif ona sprawdza czy w danej zmiennej znajduje się jakiś ciąg znaków??
batman
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. ?>
scretch
nie dokładnie to, ale jak przerobiłem to działa.
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.