Archiwa kategorii: AJAX

M??wi─?, ??e ajax to kolejny fantom. Pomimo tego, ??e technologia jest jeszcze niedoskona??a to cieszy si─? ogromn─? popularno??ci─? w??r??d webdeveloper??w

Javascript: Walidator Numeru Rachunku Bankowego (NRB)

Opis Formatu NRB

Format NRB jest to 26 cyfr zapisanych w formacie:

CC AAAA AAAA BBBB BBBB BBBB BBBB

Gdzie:

  • CC to suma kontrolna (2 cyfry),
  • AAAAAAAA to numer rozliczeniowy jednostki organizacyjnej banku (8 cyfr),
  • BBBBBBBBBBBBBBBB to numer rachunku klienta w banku (16 cyfr).

Wi─?cej na ten temat powie nam wikipedia.

Algorytm Walidacji:

  1. Wytnij znaki nie numeryczne z ci─?gu wej??ciowego i przejd?? do kroku 2.
  2. Je??eli d??ugo??─? ci─?gu znak??w wynosi 26 to przejd?? do kroku 3 w przeciwnym wypadku zwr??─? false.
  3. Do ci─?gu znak??w dopisz kod kraju 2521, kt??ry odpowiada kodowi literowemu PL (P┬á–┬á25, L┬á–┬á21).
  4. Dwa pierwsze elementy ci─?gu zawieraj─?cego numeru konta przenie?? na koniec tego ci─?gu(kt??re zawieraj─? sum─? kontroln─?).
  5. Przegl─?daj numer konta od ko??ca mno??─?c kolejno: ostani─? cyfr─? numeru konta z pierwsz─? wag─?┬á zawart─? w tablicy wag. Sumuj─?c wynik powy??szego mno??enia.
  6. Je??eli wynik┬á reszty z dzielenia przez 97┬á jest r??wny jeden to zwr??─? true w przeciwnym wypadku zwr??─? false

Implementacja funkcji sprawdzaj─?cej poprawno??─? NRB

function NRBvalidatior(nrb)
  {
    nrb = nrb.replace(/[^0-9]+/g,'');
    var Wagi = new Array(1,10,3,30,9,90,27,76,81,34,49,5,50,15,53,45,62,38,89,17,
            73,51,25,56,75,71,31,19,93,57);
 
    if(nrb.length == 26) {
      nrb = nrb + "2521";
      nrb = nrb.substr(2) + nrb.substr(0,2);
      var Z =0;
      for (var i=0;i<30;i++) {
        Z += nrb[29-i] * Wagi[i];
      }
      if (Z % 97 == 1) {
        return true;
      }else{
        return false;
      }
 
    }else{
      return false;
    }
  }

Wywo??ywanie sprawdzania przy edycji pola lub wys??aniu formularza

$('form').submit(function(){
  if(NRBvalidatior($('input#nrb').val()))
  {
    return true;
  }
  else
  {
    return false;
  }
});

Live demo:

geolokalizacja by googlemaps

By??y ju?? mapy googla i ko??ystanie z API googlemaps. Teraz nadszed?? czas na geolokalizacje. Google oferuje bardzo dok??adny skrypt geolokalizacji. A korzystanie z niego wygl─?da mniej wi─?cej tak:

$szukana_lokalizacja = "Pozna??, Plac Andersa";
$fd = fopen("http://maps.google.com/maps/geo?q=".urlencode($szukana_lokalizacja)."&output=csv&key=TW??JAPIKEY", "r");
$data = fread($fd, 5000); // od filesize($fd) nie dzia??a
$data = explode(",", $data);
//print_r($data);
//$data[0] to odpowied?? http je??li 200 to jest ok
if($data[0] == 200) {
 $y = $data[2]; // szeroko??─?
 $x = $data[3]; // d??ugo??─?
}
fclose($fd);

Mo??na oczywi??cie prasowa─? wielkiego XML’a w kt??rym jest dok??adna lokalizacja po stan/wojew??dztwo itp. wystarczy zmieni─? output na xml.

Wi─?cej do poczytania na:

google maps

Zatem sta??em si─? specjalist─? od AJAX’a i Google Maps. Do portalu muzhi.com(domena jeszcze nie podpi─?ta) Dopisa??em kolejny klon twittera znany pod nazw─? twittervision.com

Wersja jeszcze jest rozwojowa. Wi─?c nie czepiajcie si─? o drobiazgi. Dzia??a poprawnie. Ajax napisany z r─?ki, do pharse’owania xml’a u??y??em zintegrowanej biblioteki googla GXml. Wszystko to dost─?pne pod adresem:

map.logbox.cn

Zapraszam i Pozdrawiam,