[ajax] Moje pierwsze starcie, czyli przewodnik dla całkowicieZielonych |
[ajax] Moje pierwsze starcie, czyli przewodnik dla całkowicieZielonych |
14.03.2006, 22:06:28
Post
#41
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) |
Cytat(Vomit @ 2006-03-14 20:18:54) Mam shoutboxa i chcialbym aby nie odswiezał mi sie on za pomoca Refresh co np. 30 sekund, tylko sprawdzał czy doszly nowe wpisy, jesli tak to odrazu je wyswietlal. @Vomit Kolo nikt Nie zrobi Ci na gotowe całego skryptu... Pomyśl logicznie jak byś to załatwił... Przykłady, kyóre pokazał TomaSS pokazują wiele zastosowań tego AJAX'a... poczytaj sobie jak wybiera sie dane z serwera i wstawia na strone... (przykład Anakina URL=http://advajax.anakin.us/index-pl.htm]Ładowanie danych do trzech warstw[/URL])...nasz tam jak na dłoni jak wstawić dane na strone... dalej w pliku php masz dużo możliwości.. możesz wyświetlić z bazy lub z pliku ostatnie wpisy, może sz sprawdzić jakie wpisy masz wyświetlone i sprawdzić, czy są jakies inne niż te co masz wyświetlone... pokombinuj... wszystko da sie zrobic... 3m sie... Ten post edytował kukix 17.03.2006, 16:10:46 |
|
|
17.03.2006, 14:49:22
Post
#42
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
Cytat(eMartio @ 2006-03-17 10:53:26) Czy można zmusisz bibliotekę advAjax do współpracy z systemem szablonów Smarty? Jezeli tak, to poprosze o instrukcje. To wazne dla mnie... Nie za bardzo wiesz co jest grane. advAJAX nie moze wspolpracowac ze Smarty'm, poniewaz to jest JavaScript. A JavaScript ma sie nijak do Smarty'ego. Za pomoca advAJAX mozesz wyslac zadanie do skryptu php i to wlasnie ten skrypt moze korzystac ze Smarty'ego ale nie advAJAX. |
|
|
17.03.2006, 16:11:07
Post
#43
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) |
Mam jeszcze taką sprawę...
Czytałem troche na stronie advAJAX o wysyłaniu formularzy no i sa tam dwa sposoby wysyłania formularzy.. jeden to Kod advAJAX.submit(document.getElementById("the_form"), {}); drugi to : Kod advAJAX.assign(document.getElementById("the_form"), {}); Z tego co wyczytałem, to ten drugi sposób działa tak, że jak "nie działa", to wysyla formularz normalnie... chciałem stosowac ten pierwszy sposób ponieważ odpala sie on dopiero po kliknięciu Submit'a, i nie trzeba go wcześniej onLoad="...".. Jak myslicie, który sposób jest lepszy i do czego jest lepszy... Co lepioej nadawało by sie na formularz do dodawania newsów w administracji...? P.S. Po przeglądnięciu pliku advajax.js zobaczyłem, że ta druga funkcja zawiera w sobie tą pierwszą, i są tam tylko dodatkowe warunki... P.S2 Jest w advAJAX taka "opcja", która czyści cały formularz.. np po wysłaniu formularza? czy trzeba wszystkie pola ręcznie czyścić? |
|
|
17.03.2006, 17:50:54
Post
#44
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) |
Cytat(eMartio @ 2006-03-17 18:21:45) I jak teraz z pliku index.php przesłać nowe dane do templejtu? @eMartio - cos ci sie jednak miesza. Smarty operuje na serwerze a ajax w przegladarce uzytkownika. Nie po to pobierasz dane metoda get obiektu advAjax aby te dane wysylac spowrotem na serwer w celu wrzucenia ich do szablonu smarty. Pomysl chwile zamiast sie glupio oburzac i robic przytyki mike_mechowi imputujac mu brak inteligencji. edit -------------------- Dla jasnosci advAjax zmienia zawartosc juz wygenerowanej strony, a szablon smarty jest wzorem na podstawie ktorego sie te strone generuje. advAjax nie zmienia wzoru tylko wynik. Ten post edytował bigZbig 17.03.2006, 17:57:12 -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
17.03.2006, 18:51:06
Post
#45
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) |
Może coś wyjaśnię.
Rzeczywiście mike_mech - nie ma wpływu na SMARTY. Inn sprawa, że advAJAX może wysłać żądanie do serwera, który dzięki SMARTY wygeneruje jakiś HTML i później dzięki innerHTML można ten kod umieścić na stronie. Ale na sposób generacji AJAX może wpływać tylko poprzez żądanie do serwera. Cytat Nie po to pobierasz dane metoda get obiektu advAjax aby te dane wysylac spowrotem na serwer w celu wrzucenia ich do szablonu smarty. Myślę, że nie o to chodziło eMartio - możesz AJAXem pobrać (przy pomocy np. GET) cały wygenerowany szablon i umieścić go w divie. Cytat I jak teraz z pliku index.php przesłać nowe dane do templejtu? Nowe dane nie prześlesz do templejtu, możesz co najwyżej wygenerować nowy kod HTML. Cytat Dla jasnosci advAjax zmienia zawartosc juz wygenerowanej strony, a szablon smarty jest wzorem na podstawie ktorego sie te strone generuje. advAjax nie zmienia wzoru tylko wynik. Właśnie o to chodzi - AJAX nie zmieni szablonu lecz tylko jego zawartość. @kukix: Cytat Czytałem troche na stronie advAJAX o wysyłaniu formularzy no i sa tam dwa sposoby wysyłania formularzy.. jeden to Noi brawo a gdybyśmy dali Ci na początku gotowe rozwiązanie, to prawdopodobnie trudniej by Ci było się zmotywować do poczytaniu o AJAXie Cytat Jak myslicie, który sposób jest lepszy i do czego jest lepszy... Myślę, że advAJAX.assign jest lepszym rozwiązaniem przy wysyłaniu formularzy. Po to (prawdopodobnie) został stworzony. Pomyśl sobie, jakbyś miał formularz generowany przez php bądź JS i niewiedział ile masz pól (np. checkboxów lub selectów) - wtedy wysyłanie submitem mogłoby być troszkę uciążliwe. Cytat P.S2 Jest w advAJAX taka "opcja", która czyści cały formularz.. np po wysłaniu formularza? czy trzeba wszystkie pola ręcznie czyścić? jest instrukcja JavaScript, która "zeruje" formularz: Kod this.form.reset();
-------------------- |
|
|
18.03.2006, 03:43:05
Post
#46
|
|
Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) |
Hmm.. ja właściwie dopiero zainteresowałem sie AJAXem, ale mam pewien problem, a mianowicie póki co mam taki prosty kodzik:
test.php
w index.php mam: Kod <script type="text/javascript"> function changeModel(p) { changeModel += p; advAJAX.setDefaultParameters({ onInitialization : function(obj) { document.getElementById(obj.tag).innerHTML = "Przygotowywanie..."; }, onLoading : function(obj) { document.getElementById(obj.tag).innerHTML = "Ładowanie..."; }, onSuccess : function(obj) { document.getElementById(obj.tag).innerHTML = "Wynik: " + obj.responseText; }, onError : function(obj) { document.getElementById(obj.tag).innerHTML = "Błąd..."; } }); advAJAX.get({ url: "test.php?id="+p, tag: "e3_div1" }); } </script> oraz poniżej: i niby wszystko ładnie, ale do mometu pierwszego wywołania, a mianowicie kiedy kliknę na link: java script:changeModel(4) wszystko ok, ale kiedy już otrzymam wynik i kliknę np. na następny changeModel(5) nic sie nie dzieje. :/ o co chodzi? Juz znalazłem.. poprawiony plik JS powinnien być bez linijki: Kod changeModel += p;
Ten post edytował chomiczek 18.03.2006, 05:45:00 -------------------- created by chomiczek
|
|
|
19.03.2006, 21:50:53
Post
#47
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) |
Używam do wysyłania fomrularza AJAX'a .. wszystko jest ok, ale co zrobic, jeżeli na jednej stronie są dwa różne formularze...
Mam w <BODY ... onload="updateObjects();"> Kod function updateObjects() { advAJAX.assign($("frm_news"), { onInitialization : function(obj) {...}, onComplete : function() {...}, onSuccess : function(obj) {...}, onError : function(obj) {...} }); } Funkcja updateObjects wykionuje różne działania, które w innym formularzu nie są potrzebne, będą powodowały konflikt.. (podstawianie domyslnych wartości, resetowanie itd..)... I teraz mam inny formularz (lista newsów z checkboxem wybieram tutaj te do usunięcia)... no i jak go wysyłam submitem, to wykonuje tą funkcje updateObjects.. Jak rozwiązać tą sprawe.. drugiej funkcji updateObjects2() raczej nie można wstawić do onLoad.. myślałem, żeby wewnątrz funkcji updateObjects() podzielić kod ze względu na formularza np: Kod function updateObjects() { if (form= 'foirmularz1') { advAJAX.assign($("frm_news"), { onInitialization : function(obj) {...}, onComplete : function() {...}, onSuccess : function(obj) {...}, onError : function(obj) {...} }); } else {//inny formularz advAJAX.assign($("frm_news"), { onInitialization : function(obj) {...}, onComplete : function() {...}, onSuccess : function(obj) {...}, onError : function(obj) {...} }); } } Co wy o tym sądzicie.. może jest jkakiś inny lepszy sposób... Ten post edytował kukix 19.03.2006, 22:43:46 |
|
|
20.03.2006, 08:30:32
Post
#48
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) |
Nie latwiej zrobic osobne funckje dla obslugi kazdego formularza updateObjects1() i updateObjects2()?
-------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
20.03.2006, 17:10:32
Post
#49
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) |
Mam takie pytanie co do advAJAX.assign()...
Chodzi mi konkretnie o wysyłanie tablicy... mam taki form: no i teraz chciałem skryptem php wrzucić tą tablice do pętli:
no i problem jkest w tym, że z tego formularza dochodzi tablica, ale tylko z pierwszym wpisem value=1 (count($zaznacz_mnie) zwraca 1)..da sie jakoś to ominąc..? czy advAJAX.assign() "potrafi"wysyłac tablice? spotkał sie może ktoś kiedyśz takim przypadkiem? Ten post edytował kukix 20.03.2006, 21:09:41 |
|
|
21.03.2006, 08:37:53
Post
#50
|
|
Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) |
Hmm.. ja mam pytanko dot. tego czego lepiej użyć, które rozwiązanie jest bardziej optymalne:
1.
w odpowiednie tagi 'wklejane są' wyniki zapytania.. tylko w tym przypadku jest wysyłane aż 4 razy zapytanie do bazy danych do pliku look.php 2. Wysyłam jedno zapytanie, które zwraca mi spreparowaną stronę. W chwili obecnej jest tak, że w kilku miejscach na stronie pojawi mi się Ładowanie, jesli byłoby to jedno zapytanie to byłoby to jedno ŁADOWANIE, a strona na chwile by znikała (jesli dobrze rozumuje). Które z tych rozwiązań jest lepsze, ewentulanie może jest trzecie? W chwili obecnej potrzebuje tego do Tej strony zalinkowane są fotki na dole, ale czy mój pomysł jest ok? -------------------- created by chomiczek
|
|
|
21.03.2006, 08:55:53
Post
#51
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) |
Mozesz wyslac jedno zapytanie do serwera i odbierac wynik w postaci pliku XML. Po napisaniu parsera wyciagajacego z pliku XML poszczegolne elementy mozesz aktualizowac drzewo DOM dokumentu w kilku miejscach za jednym zamachem.
-------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
22.03.2006, 11:40:18
Post
#52
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 15.07.2003 Ostrzeżenie: (0%) |
Cytat no i problem jkest w tym, że z tego formularza dochodzi tablica, ale tylko z pierwszym wpisem value=1 (count($zaznacz_mnie) zwraca 1)..da sie jakoś to ominąc..? czy advAJAX.assign() "potrafi"wysyłac tablice? spotkał sie może ktoś kiedyśz takim przypadkiem? To jest jeden w błędów wersji 1.0, będzie poprawione w 1.1. Odnośnie 1.1, będzie również możliwość wstawiania paska postępu ładowania, ale tylko w Firefoxie, póki co. Ogolnie będzie kilka nowych metod i atrybutów, zwiększających funkcjonalność całości. Planuję także wrzucić advAJAX_History, który pozwoli na tworzenie odnośników wykorzystujących advAJAXa, na które będzie reagować mechanizm historii przeglądarki, więc będzie można bez problemu korzystać z przycisków "Dalej", "Wstecz", jak również dodawać stronę do zakładek. -------------------- Łukasz Lach
http://anakin.us/ |
|
|
22.03.2006, 15:37:23
Post
#53
|
|
Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) |
a kiedy mozna spodziewać się wersji 1.1??
-------------------- created by chomiczek
|
|
|
22.03.2006, 22:06:28
Post
#54
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 15.07.2003 Ostrzeżenie: (0%) |
Cytat a kiedy mozna spodziewać się wersji 1.1?? Na koniec przyszlego tygodnia, prawdopodobnie. -------------------- Łukasz Lach
http://anakin.us/ |
|
|
22.03.2006, 23:12:45
Post
#55
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) |
Cytat Na koniec przyszlego tygodnia, prawdopodobnie. szybki jestes czekam i nieomieszkam przetestować -------------------- |
|
|
24.03.2006, 11:44:21
Post
#56
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) |
Cytat(anAKiN @ 2006-03-22 23:06:28) Na koniec przyszlego tygodnia, prawdopodobnie. Przydałyby sie też jakieś ciekawe przykłady... zastosowania advAJAX'a 1.1 ... może np cośw rodzaju Sortowane menu w najprostszej wersji..., może jakiś mały czat... pozdr.... Ten post edytował kukix 24.03.2006, 14:36:01 |
|
|
25.03.2006, 03:08:42
Post
#57
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 15.07.2003 Ostrzeżenie: (0%) |
AdvancedAJAX 1.1
http://anakin.us/blog/advancedajax-11/ -------------------- Łukasz Lach
http://anakin.us/ |
|
|
25.03.2006, 09:42:19
Post
#58
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) |
Szkoda, że onProgress działa tylko na Mozili Bardzo fajna sprawa.
-------------------- |
|
|
27.03.2006, 09:44:02
Post
#59
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%) |
jak jest z tym "url:"
czy mozna pobierac tez dane nie z lokalnego serwera ( url: "jakislokalnyplik.php", .. ) tylko odwolujac sie url: "http://.." bo cos mi to nie dziala jak pobieram z innego |
|
|
27.03.2006, 11:35:11
Post
#60
|
|
Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) |
Mozesz pobierac tylko dane z serwera, z ktorego zostal wywolany skrypt (np. php). Wzgledy bezpieczenstwa .
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.09.2024 - 17:02 |