Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax howto] Jeszcze prostszy AJAX: moo.ajax
Forum PHP.pl > Forum > XML, AJAX
Fipaj
OK, trzeba się zrehabilitować ;-) Oto opis praktycznie najprostszego silniczka do obsługi Ajaksu ;-)

Co będzie potrzebne?
Potrzebne będą dwa skrypty - moo.ajax i prototype.lite. Oba można pobrać z mojego serwera: http://fipaj.livenet.pl/files/AJAX.tar.gz (naprawiony!)

Zaczynamy
Paczkę rozpakowywujemy i przenosimy na serwer (!). Aplikacja nie zadziała z protokołu file://, musimy umieścić ją na serwerze z obsługą php.
Nasza aplikacja będzie składać się z czterech plików:
* script.php
* index.html
* moo.ajax.js
* prototype.lite.js
Wszystkie przykłady znajdują się w w/w paczce.

Po stronie serwera
Plik script.php ma coś wypisywać na ekranie. Mogą to być dane z bazy bądź z pliku - to akurat nie jest ważne. W naszym przykładzie będzie to wyglądać tak:
  1. <?php
  2. sleep (10);
  3. print ("Jestem skryptem");
  4. ?>

Skrypt zasypia na 10 sekund, po czym wyświetla napis "Jestem skryptem".
Ten pliczek można sobie dowolnie rozbudowywać, to chyba każdy umie ;-)

Po stronie przeglądarki
Skrypt moo.ajax to klasa o nazwie "ajax", którą wywołujemy z następującymi parametrami:
* url - adres url skryptu, tutaj script.php
* options [parametry] - o tym za chwilę
Wywołanie połączenia wygląda więc tak:
Kod
new ajax (url, options);

OK, co z tymi parametrami? Przede wszystkim podajemy je w tablicy, tak to wygląda w JS:
Kod
new ajax ('script.php', {klucz1: 'wartość', klucz2: 'wartość',...);

Proste? Proste.
Oto spis możliwych parametrów:
* 'method' -> post bądź get, domyślnie post
* 'postBody' -> parametry połączenia post
* 'onComplete' -> nazwa funkcji wykonywanej po wykonaniu połączenia Ajaksu
* 'update' -> id elementu, który zostanie wypełniony treścią pobraną z pliku php
OK, teraz cały plik index.html:
  1.      <head>
  2.            <title>Ajax!</title>
  3.            <script src="prototype.lite.js"></script>
  4.            <script src="moo.fx.js"></script>
  5.            <script src="moo.ajax.js"></script>
  6.            <script>
  7. window.onload = function () {
  8.      new ajax ('php.php', {update: $('tekst'), onComplete: myFunction});
  9. }
  10. function myFunction(request){
  11.  alert(request.responseText);
  12. }
  13.            </script>
  14.      </head>
  15.      <body>
  16.            <h1>Ajax Test! :)</h1>
  17.            <p id="tekst">Ten tekst za chwilę zostanie zastąpiony przez inny ;-)</p>
  18.      </body>
  19. </html>


Zakończenie
Dziękuję za uwagę ;-) A tutaj strona główna skryptu: http://www.mad4milk.net/entry/moo.ajax
GrayHat
hehe wczesniej odkrylem ten silnik smile.gif
przyklad na stronie ktora robie dla klienta: www.kfl.pl
TomASS
Proste smile.gif Tylko zastanawiams się w czym jest prostsze od advAJAX ? smile.gif

  1. advAJAX.post({
  2.            url : "url.php",
  3.            parameters:{
  4.      numer: numer
  5.            },
  6.            onSuccess : function(obj) { alert(obj.responseText);}
  7. });

Może troszkę prostrze to jest, ale jakoś nie mogę doczytać czy ma np. walidację parametrów?

Ale dzięki Fipaj za linka guitar.gif , warto się z tym zapoznać smile.gif
Fipaj
Nieeeeee! Czwarty raz ktoś przekręca mojego nicka, w tym po raz drugi ty, TmSAS biggrin.gif (OK, OK - TomASS ;])

prostsze ;-)

Walidacji parametrów nie ma... ale to jest naprawdę lightweight library, ~1.3kb ;-)
TomASS
Cytat
Nieeeeee! Czwarty raz ktoś przekręca mojego nicka, w tym po raz drugi ty, TmSAS

Przepraszam bardzo, to się więcej nie powtórzy smile.gif
Już to poprawiłem

Wracając do dyskusji:
Cytat
Walidacji parametrów nie ma

No właśnie sad.gif

Cytat
ale to jest naprawdę lightweight library, ~1.3kb ;-)

Zgadza się smile.gif To jest jej duży plus, lecz dodaj do tego 3.2 kb prototype.lite. co i tak daje małą bibliotekę smile.gif
Fipaj
Ktoś zasugerował, aby wszystkie produktu mad4milk (moo.fx, moo.ajax, moo.dom) przepisać na troszkę większe, ale bez użycia prototype. Autor nie był zainteresowany...

Obecnie zainteresowałem się moo.fx.pack, lecę testować ;-)
seaquest
Tylko jak ktoś kiedyś mądry powiedział: Po co wyważać otwarte drzwi?. Skoro Prototype ma AJAX'a, to czemu z niego nie korzystać. Jest tak samo prosty (a nawet chyba prostszy) od tego przedstawionego... A możliwości ma dużo większe (np. Ajax.Updater)
splatch
// popieram seaquesta.
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.