Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

6 Stron V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> [ajax] Moje pierwsze starcie, czyli przewodnik dla całkowicieZielonych
kukix
post 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
Go to the top of the page
+Quote Post
mike
post 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.
Go to the top of the page
+Quote Post
kukix
post 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="...".. cool.gif
Jak myslicie, który sposób jest lepszy i do czego jest lepszy... tiredsmiley.gif

Co lepioej nadawało by sie na formularz do dodawania newsów w administracji...? dry.gif

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ć?
Go to the top of the page
+Quote Post
bigZbig
post 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
Go to the top of the page
+Quote Post
TomASS
post 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 smile.gif a gdybyśmy dali Ci na początku gotowe rozwiązanie, to prawdopodobnie trudniej by Ci było się zmotywować do poczytaniu o AJAXie smile.gif

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();


--------------------
Go to the top of the page
+Quote Post
chomiczek
post 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
  1. <?php
  2. include '../config.inc.php';
  3. $zapytanie = "SELECT * FROM `arkaProdukty` WHERE `ProductId`='".$_GET['id']."' LIMIT 1";
  4. $odp=mysql_query($zapytanie);
  5. while($row=mysql_fetch_array($odp)) {
  6. echo $row['Symbol'];
  7. }
  8. ?>


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:
  1. <div id="e3_div1" class="e3_div"></div><br/><br/>


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
Go to the top of the page
+Quote Post
kukix
post 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...questionmark.gif

Ten post edytował kukix 19.03.2006, 22:43:46
Go to the top of the page
+Quote Post
bigZbig
post 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
Go to the top of the page
+Quote Post
kukix
post 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:
  1. <FORM ...>
  2. <INPUT type=checkbox name=zaznacz_mnie[] value=1>
  3. <INPUT type=checkbox name=zaznacz_mnie[] value=2>
  4. <INPUT type=checkbox name=zaznacz_mnie[] value=3>
  5. </FORM>


no i teraz chciałem skryptem php wrzucić tą tablice do pętli:
  1. <?php
  2.  
  3. if(count($zaznacz_mnie)>0) {
  4.   foreach($zaznacz_mnie as $id_pozycji) {
  5.     sql("DELETE FROM news WHERE id = '".$id_pozycji."' LIMIT 1");
  6.   }
  7. }
  8.  
  9. ?>


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
Go to the top of the page
+Quote Post
chomiczek
post 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.
  1. advAJAX.get({ url: "look.php?symbol="+p, tag: "symbol" });
  2. advAJAX.get({ url: "look.php?rozmiar="+p, tag: "rozmiar" });
  3. advAJAX.get({ url: "look.php?skora="+p, tag: "skora" });
  4. advAJAX.get({ url: "look.php?fotoD="+p, tag: "fotoD" });

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
Go to the top of the page
+Quote Post
bigZbig
post 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
Go to the top of the page
+Quote Post
anAKiN
post 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/
Go to the top of the page
+Quote Post
chomiczek
post 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
Go to the top of the page
+Quote Post
anAKiN
post 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/
Go to the top of the page
+Quote Post
TomASS
post 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 tongue.gif

czekam i nieomieszkam przetestować smile.gif


--------------------
Go to the top of the page
+Quote Post
kukix
post 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... cool.gif pozdr....

Ten post edytował kukix 24.03.2006, 14:36:01
Go to the top of the page
+Quote Post
anAKiN
post 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/
Go to the top of the page
+Quote Post
TomASS
post 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 sad.gif Bardzo fajna sprawa.


--------------------
Go to the top of the page
+Quote Post
michalr
post 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
Go to the top of the page
+Quote Post
Radarek
post 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 smile.gif.
Go to the top of the page
+Quote Post

6 Stron V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 17:57