Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ograniczenia w input
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
timii
witam.

chcialbym zrobic taka magiczna sztuczke, zeby w polu input, w ktorym ktos bedzie wpisywal date (RRRR-MM-DD) mial automatycznie ograniczenie daną wartością pobierana z bazy danych np. nie moze wpisac daty pozniejszej od 2006-08-21. (wazne jest to ze data jest pobierana z bazy MySql) czy jest na to jakis sposob ?

pozdrawiam,
Tomek
Cysiaczek
Napisz, czy chodzi o sprawdzanie w trakcie pisania - wtedy baaardzo skomplikowany JS, czy tez o sprawdzenie tego po wysłaniu formularza? Wtedy jest 1000+1 mozliwości.

Pozdrawiam.

ps. Aha. jaki to input? tzn jest jeden, czy są trzy - dla roku, misiąca, dnia?
php programmer
Chyba nie jest to aż tak trdune.
Pobierasz date z MySQL w php do jakieś zmiennej np o nazwie $data.

Potem robisz:

  1. <?php
  2. echo '<scrypt>';
  3. echo ' var data ="'.$data.'" ';
  4. echo '</scrypt>';
  5. ?>


A potem sprawdzasz tylko w JavaScript przy akcji wysyłania formularza.
Tzn zanim jeszcze wyślesz to sprawdzasz.
timii
dobre rozwiazanie php programmer smile.gif

tylko nie wiem tongue.gif jak sprawdzic przed wyslaniem formularza w JS czy jest ok czy podana data nie jest wieksza hehe jestem noga w JS sad.gif najlepiej jakby wyskakiwal alert ze data jest za "pozna" od wymaganej.

ps. a czy sprawdzanie podczas pisania jest bardzo trudne ?

tak sobie obmyslam algorytm (ale tego sam nie napisze hehe). Jest data typu 2006-08-21 i wpisujac do input (jednego input) JS automatycznie sprawdza czy cyferka po cyferce sie zgadza. jak wpisany miesiac jet wiekszy od 08 to alert, jak dobrze wpisze to sprawdza czy dzien, jak wiekszy to alert. algorytm myslowy nie jest trudny tongue.gif tylko czy w praktyce sie tak da ?
Cysiaczek
Da się. Ilść kombinacji jest na tyle sensowna, że mozna sie pokusić o naipisanie, ale jest to dość monotonne laugh.gif . Może jednak wystarczy sprawdzenie po stronie serwera? np. przez bazę danych, co jest dość proste.

Pozdrawiam.
php programmer
To żaden problem w JavaScript porównac daty,
wystarczy użyć porównania stringów
(o ile jako pierwszy podajemy rok, potem miesiac, a potem dzień
a taka włąsnie kolejność jest zazwyczaj w bazie)

Kod
<script language="javascript" type="text/javascript">
var data1 = '2006-03-23';
var data2 = '2006-04-23';
if (data1<data2) alert('mniejsza'); else alert('wieksza')
</script>


Cytat
ps. a czy sprawdzanie podczas pisania jest bardzo trudne ?

Nie jest trudne, wykorzystujesz zdarzenie onChange
Ps. Pamiętaj żeby porównywać dopiero jak obydwa inputy będą
miały 10 znaków tzn będzie do końca wpisana data
timii
no dobra super smile.gif napisalem sobie taki kodzik smile.gif tylko nie krzyczcie bo jestem poczatkujacy hehe
no i mi nie dziala :/

  1. <script language="JavaScript" type="text/javascript">
  2.  
  3. function spr( )
  4. {
  5. var data1 = document.getElementById('dar');
  6. var data2 = '2006-08-23';
  7.  
  8.  
  9. if (data1<data2) { alert('mniejsza'); }
  10. else { alert('wieksza') }
  11.  
  12. }
  13.  
  14. <form action="ble4.php" method=post name=forma>
  15.  
  16. <input id=dar type="text" name=dar />
  17.  
  18. <input type="submit" value=wyslij onclick="return spr();" />
  19.  
  20. </form>


jak wpisuje mniejsza date to wyskakuje mi okienko ze wieksza biggrin.gif

co z tym poczac ?
php programmer
zmień
Kod
if (data1<data2)

na
Kod
if (data1>data2)
timii
jak wpisuje wieksza albo mniejsza to dzieje sie to samo smile.gif cos jest nie tak sad.gif

pomozcie prosze sad.gif dlaczego ten skrypt nie chce dzialac tak jak chce sad.gif
nospor
Kod
//....
var data1 = document.getElementById('dar').value;
//.....
timii
super smile.gif dziekuje nospor.

a jeszce jedno tongue.gif hehe

Jak juz dobrze wpisze date to chce zeby wyslal mi formularz. Jak wpisze sobie return true; to nie wysyla formularza hm... ?
nospor
Kod
function spr( )
{
var data1 = document.getElementById('dar').value;
var data2 = '2006-08-23';


if (data1<data2) { alert('mniejsza'); return true;}
else { alert('wieksza');return false; }

}
timii
super przy takim krotkim kodzie to mi dziala ale jak wkleilem to tam gdzie chce to mi nie wysyla formularza a kod jest taki sam:

  1. <form action="ble4.php" method=post name=forma>
  2.  
  3. <script language="JavaScript" type="text/javascript">
  4. function spr()
  5. {
  6. var data1 = document.getElementById('dar').value;
  7. var data2 = '2006-08-23';
  8.  
  9. if (data1>data2) { alert('za duza data'); return false;}
  10. else {
  11. if(data1=='') { alert('nie wpisales daty '+data2); return false; }
  12. else { alert('mniejsza '+data2); return true; }
  13. }
  14.  
  15. }
  16.  
  17. <input id=dar maxlength=10 size=8 type="text" name=dar />



dluuugi dlugi kod...


  1. <input id=dar maxlength=10 size=8 type="text" name=dar />
  2. <input type="submit" value=wyslij onclick="return spr();" />
  3.  
  4. </form>


i nawet nie bziaknie tongue.gif

moze jakos to polaczyc z tym :

  1. java script:document.form1.submit()



ale jak zrobie tam ze w form wpisze name=form1 i w:

  1. <INPUT TYPE="button" value="publikuj" onclick="return spr(); java script:document.form1.submit()">


jak wytne z tego unputu return to nie dziala... yh...

to moj ostatni problem :/ nie krzyczcie bo sie nie znam na javie :/ dzialam tylko w php :/

dobra poradzielem sobie tongue.gif ale ze mnie leser co biggrin.gif hehe
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.