Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tylko cyfry
Forum PHP.pl > Forum > Przedszkole
crew123
Cześć.
Chciałbym się Was zapytać jak zrobić filtrowanie inputa tekstowego tak aby akceptował tylko liczby. Próbowałem już wielokrotnie lecz wszystko sypalo się gdy input był pusty.
Kshyhoo
Zobacz to:
  1. <script type="text/javascript" language="JavaScript">
  2. // tylko cyfry
  3. function fHandleInputs(obj) {
  4. var obj = document.form1.numer;
  5. if (!obj.value.match('^[0-9]*$') && obj.value.length>0) obj.value = obj.value.substring(0,obj.value.length-1);
  6. }
  7. // tylko 4 cyfry
  8. function fCheckValidation(fobj) {
  9. return (fobj.numer.value.match('^[0-9]{4}$'))? true: false;
  10. }
  11.  
  12. <body onload="fSetUpInputs();">
  13. <form method="post" name="form1" action="index.php" onsubmit="return validate();">

Nie wiem, czy cały kod potrzebny...
Mephistofeles
Możesz wykorzystać HTML5 i typ inputa number.
http://www.w3.org/TR/html-markup/input.number.html
Natomiast po stronie PHP możesz skorzystać z is_int.
crew123
Chodziło mi bardziej o jakiś php, aby zrobić ładny komunikacik.
Up. będzie działać gdy imput bedzie empty?
-uki-
  1. if(!empty($_POST['name']) {
  2. if(is_numeric($_POST['name'])) {
  3. $some = $_POST['name']
  4. }
  5. else {
  6. echo 'Tylko liczby';
  7. }
  8. }
  9. else {
  10. echo 'Uzpelnij pole';
  11. }
crew123
uki, chodzi o to aby mozna bylo zostawic puste
-uki-
  1. if(!empty($_POST['name']) {
  2. if(is_numeric($_POST['name']))
  3. $some = $_POST['name'];
  4. else
  5. echo 'Tylko liczby';
  6. }
  7. else {
  8. $some = ''; // puste = puste
  9. }
crew123
Gdy zostawie puste wyskakuje blad "tylko liczby" smile.gif
Rysh
to dodaj sobie or empty($zmienna).
-uki-
  1. echo '<form action="index.php" method="POST">
  2. <input type="text" name="number">
  3. <input type="submit" value="Wyślij">
  4. </form>';
  5.  
  6.  
  7. if(!empty($_POST['number'])) {
  8. if(is_numeric($_POST['number']))
  9. $some = $_POST['number'];
  10. else
  11. echo 'Tylko liczby';
  12. }
  13. else {
  14. $some = ''; // puste = puste
  15. }
  16. if(isset($some))
  17. echo $some;


Dziala na 100%.
crew123
Dobra zrobiłem to troszke inaczej, dziala - dzieki smile.gif
Mephistofeles
Użyj is_int, jeśli chcesz mieć liczby całkowite, is_numeric sprawdza tylko czy zmienna jest liczbą.
  1. if (is_int($_POST['number']) || empty($_POST['number']))
  2. return true;
Rysh
  1. if(isset($_POST['number'])) {
  2. if(is_numeric($_POST['number']) OR empty($_POST['number']))
  3. echo 'Prawidłowo';
  4. else
  5. echo 'Tylko liczby';
  6. }
  7. }
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.