Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

6 Stron V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> [ajax] Moje pierwsze starcie, czyli przewodnik dla całkowicieZielonych
kukix
post 28.03.2006, 19:12:11
Post #61





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 12:40:18)
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.

Wlasnie testuje advAJAX 1.1 i chyba dalej jest problem z tymi tablicami.. pobiera mi tylko pierwszą i ostatnią wartośc z zaznaczonych pół... chyba dalej jest ten błąd.. ale jużchociaż lepiej niż przedtem... cool.gif
Go to the top of the page
+Quote Post
anAKiN
post 28.03.2006, 20:20:53
Post #62





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 15.07.2003

Ostrzeżenie: (0%)
-----


Fakt. Poprawione:
http://advajax.anakin.us/opera/test4.html

Cytat
Szkoda, że onProgress działa tylko na Mozili sad.gif Bardzo fajna sprawa.

Ze mną jak z dzieckiem winksmiley.jpg To chyba jedyna implementacja na XHR która obsługuje onProgress w Operze.
http://anakin.us/blog/onprogress-w-operze/

Ten post edytował anAKiN 29.03.2006, 12:55:16


--------------------
Łukasz Lach
http://anakin.us/
Go to the top of the page
+Quote Post
kukix
post 29.03.2006, 20:32:40
Post #63





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


OK.. teraz tablice śmigają elegancko ...

Szkoda, że onProgress działa tylko na Mozili i Operze.. w sumie to większość internautów dalej korzysta z IE... sad.gif
Go to the top of the page
+Quote Post
TomASS
post 29.03.2006, 21:00:59
Post #64





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


W Operze to działa połowicznie...


--------------------
Go to the top of the page
+Quote Post
anAKiN
post 29.03.2006, 21:31:35
Post #65





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 15.07.2003

Ostrzeżenie: (0%)
-----


Cytat(TomASS @ 2006-03-29 22:00:59)
W Operze to działa połowicznie...

A moze konkretniej i na maila? Malo mi to mowi. Zreszta z tego co sam testowalem i kilka innych osob, onProgress w Operze dziala tak jak w Mozilli.


--------------------
Łukasz Lach
http://anakin.us/
Go to the top of the page
+Quote Post
TomASS
post 29.03.2006, 22:03:52
Post #66





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Wybacz Łukaszu moje niedoinformowanie. Otóż testowałem onProgress w ten sam dzień co się ukazała werska 1.1 i działało tylko na FF, w Operze było 4% i odrazu 100% - także napisałem, że działa 'połowicznie'. Teraz jest wszystko w prządku i działa bez zarzutu. Sorki za wprowadzenie lekkiej nutki haosu smile.gif


--------------------
Go to the top of the page
+Quote Post
kukix
post 30.03.2006, 14:32:44
Post #67





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A co z polskimi literami?
Wysyłając formularz funkcją advAJAX.assign() polskie litery zmieniają sie na jakieś znaczki, kwadraciki... sprawdzałem w phpmyadminie też nie wyświetlają sie polskie litery...

No ale z drugiej strony znaczki dobrze wyświetlają sie przez advAJAX.get()... co z tym zrobić...?

Na forum Skryptoteka.pl byl ten sam problem, ale coś nie moge tego rozwiązac..
Dałem do pliku w którym zapisuje dane z formularza ajaxa:
Kod
header("Content-Type: text/html; charset=iso-8859-2");

ale to nie pomaga..

Ten post edytował kukix 30.03.2006, 14:39:03
Go to the top of the page
+Quote Post
chomiczek
post 31.03.2006, 09:02:54
Post #68





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

Ostrzeżenie: (0%)
-----


Gdzieś wyczytałem, w tej chwili nie pamiętam źródła, że przekazując dane z php do JS należy używać UTF, aby te dane były poprawnie przekazane.

O już znalazłem:
artykuł pt.: "ĄŚŹ czyli polskie ogonki w internecie" zamieszczony w magazynie INTERNET z listopada 2005r., zdaniem autora jedynym sposobem na rozwiązanie tego problemu jest UTF-16.


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
Vogel
post 31.03.2006, 10:26:38
Post #69





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

Ostrzeżenie: (0%)
-----


z moich zabaw z komunikacją Flash <-> JS <-> HTML wynika ze to mozwe byc prawda. Jak na razie tylko z kodowaniem w Operze nie mialem klopotow, ale Firefox i MSIE maja ogromna "dziure" w kodowaniu znakow na linii komunikacji z JS (w samym JS jest ok, ale przesylanie danych do JS sie krzaczylo) :-/

polowicznym rozwiazaniem bylo wprowadzenie przeze mnie "translatora" (zmieniamy polskie czcionki na jakies zdefiniowane prez nas ciagi, przesylamy tresc do JS a JS wprowadza nam PL znaczki w miejscu wprowadzonych przez nas znacznikow). Sęk w tym że ta ostatnia częśc (przetwarzanie w JS) może w widoczny sposob spowalniać wyświetlenie załadowanej treści, zwłaszcza gdy mamy do czynienia z długimi tekstami.


--------------------
Go to the top of the page
+Quote Post
mariuszn3
post 31.03.2006, 10:32:47
Post #70





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

Ostrzeżenie: (0%)
-----


Do przesyłania różnych dziwnych znaczków (w tym polskich znaków diaktrycznych) przez url jest w js taka funkcja jak encodeURIcomponent()
Go to the top of the page
+Quote Post
pawel_k
post 1.04.2006, 16:13:51
Post #71





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

Ostrzeżenie: (0%)
-----


nie wiem czy to jest błąd czy przemyślana sytuajcja ale czemu przy wysyłniu formularza w advAjax (za pomocą ajax.assign) nie wysyła pola <input type="submit" /> ?

btw. co do polskich znaków wysłanych za pomocą ajaxa to poradziłem sobie w następujący sposób:
  1. <?php
  2.  
  3. foreach($_POST as $k => $v)
  4. {
  5. $_POST[$k] = mb_convert_encoding($_POST[$k], "UTF-8","UTF-8");
  6. }
  7. ?>
poźniej za pomocą Creole wstawiam dane do postgresa, bez mb_convert_encoding nie wstawiał mi danych, wywalał błędy o złych znakach. dziwna jest tylko ta zmiana z UTF-8 na UTF-8 biggrin.gif

Ten post edytował pawel_k 1.04.2006, 17:08:02
Go to the top of the page
+Quote Post
chomiczek
post 1.04.2006, 20:56:57
Post #72





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

Ostrzeżenie: (0%)
-----


a ja właśnie sprawdziłem kwestie kodowania i nie trzeba stosować UTF-16, wystarczy UTF-8, plik w którym używam AJAXa jest kodowany UTF-8, plik towrzący XMLa jest kodowany w UTD-8 oraz sam wygenerowany XML jest zakodowany w UTF-8 i nie ma żadnych problemów biggrin.gif


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
Zepco
post 2.04.2006, 18:55:34
Post #73





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 5.09.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat(Radarek @ 2006-03-27 12:35:11)
Mozesz pobierac tylko dane z serwera, z ktorego zostal wywolany skrypt (np. php). Wzgledy bezpieczenstwa smile.gif.

Da się to jakoś ominąć zmieniając ustawienia przeglądarki (np. w firefox poprzez about:config)?


-- edit --

Znalazłem, ale pewnie działa tylko w przeglądarkach z silnikiem Gecko. Dobre i to.
A oto kod:

Kod
try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
   } catch (e) {
    alert("Permission UniversalBrowserRead denied.");
   }


Ewentualnie w about:config ustawić
signed.applets.codebase_principal_support na true

Ten post edytował Zepco 2.04.2006, 20:19:50


--------------------
Jak stworzyć szybko działającą aplikację wolną od błędów?
Tego nie wiedzą nawet najstarsi indianie... :D

Oprogramowanie jest jak katedra - budujesz, budujesz, budujesz, a potem... modlisz się!
Go to the top of the page
+Quote Post
chomiczek
post 2.04.2006, 19:10:53
Post #74





Grupa: Zarejestrowani
Postów: 271
Pomógł: 4
Dołączył: 5.01.2005

Ostrzeżenie: (0%)
-----


Cytat(Zepco @ 2006-04-02 17:55:34)
Da się to jakoś ominąć zmieniając ustawienia przeglądarki (np. w firefox poprzez about:config)?

Wystarczy tylko przeczytać tutaj masz odpowiedź co i jak, a także informacje o ewentualnych zmianach w about:config

Ten post edytował chomiczek 2.04.2006, 19:11:37


--------------------
created by chomiczek
Go to the top of the page
+Quote Post
kukix
post 7.04.2006, 19:22:08
Post #75





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(pawel_k @ 2006-04-01 17:13:51)
co do polskich znaków wysłanych za pomocą ajaxa to poradziłem sobie w następujący sposób:
  1. <?php
  2.  
  3. foreach($_POST as $k => $v)
  4. {
  5.     $_POST[$k] = mb_convert_encoding($_POST[$k], "UTF-8","UTF-8");
  6. }
  7. ?>

Witam.
Jak to jest z tymi polskimi literami...?
Podczas zapisywania formularza przez advAJAX.assign() i wyświetlania przez advAJAX.get() to jest ok.. ale już na "zwykłej" stronie nie.. jak zmienie phpmyadminem wpis w bazie.. tzn dodam polskie litery to advAJAX.get() wyświetla krzaczki...

Natomiast dodane w phpmyadminie polskie litery wyświetlają sie dobrze na "zwykłej" stronie... Jak rozwiązać ten problem.. i na jakim etapie.. zapisu, czy odczytu danych z bazy...? Prosze o pomoc..

wszystkie posty na temat polskich liter nic mi nie mówią...

Ten post edytował kukix 7.04.2006, 19:23:25
Go to the top of the page
+Quote Post
TomASS
post 12.04.2006, 22:09:18
Post #76





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Hej. Może by tak kolejny przykładzik kogoś zainteresował ? smile.gif

Bardzo często przy moich projektach spotykam się z proźbą klienta o możliwość 'kolorowania' poszczególnych wierszy w tabeli (rekordów). Fajna sprawa - klient np. zaznacza jakieś ważna dla drugiej strony rekordy na czerwono i już jest wiadomo o co chodzi. Jednak jest (był) mały problem - po każdorazowym pokolorowaniu wiersza trzeba było odświeżyć stronę. Naszczęście z pomocą mi przyszedł mi AJAX smile.gif Oto co wykombinowałem:

Potrzebujemy oczywiście advAJAX.
Struktura bazy danych:
  1. CREATE TABLE `kolory` (
  2. `ID` int(10) NOT NULL AUTO_INCREMENT,
  3. `Kolor` varchar(7) DEFAULT NULL,
  4. `ID_rekord` int(10) DEFAULT NULL,
  5. UNIQUE KEY `ID` (`ID`)
  6. );


Teraz, gdy mamy odpowiednią tabelę dla naszych rekordów i w niej pole `Kolor` możemy zabrać się za wyświetlenie tychże rekordów. Plik proba.php :
  1. <html>
  2.  
  3. <head>
  4. </head>
  5. <script>
  6. function $(id){
  7.  return document.getElementById(id);
  8. }
  9. function okienko(strona){
  10.     window.open(strona, '', 'menubar=yes,toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,r
    esizable=yes,fullscreen=no,channelmode=no,width=200,height=300,left=150,top=100');
  11. }
  12. </script>
  13. <body>
  14. <table border="1">
  15. <?
  16. $dbhost = 'localhost';
  17. $dblogin = root;
  18. $dbhaslo = '';
  19. $db = test;
  20.  
  21. mysql_connect ("$dbhost","$dblogin","$dbhaslo") or die ("Nie masz uprawnien");
  22. mysql_select_db ("$db");
  23.  
  24. for($i=1;$i<10;$i++){
  25.     $query = "SELECT Kolor FROM kolory WHERE ID_rekord=$i LIMIT 1";
  26.     $result = mysql_query($query);
  27.     $row = mysql_fetch_array($result);
  28.     $kolor = $row['Kolor']?$row['Kolor']:'#723F42';
  29.     echo "<tr id=\"tr$i\" style='background: $kolor'>";
  30.       echo '<td>'.$i.'</td>';
  31.       echo '<td>'.($i*2).'</td>';
  32.       echo '<td>'.($i*3).'</td>';
  33.       echo "<td><button onclick=\"okienko('paleta.php?id=".$i."');\"></button></td>";
  34.     echo '</tr>';
  35. }
  36. ?>
  37. </table>
  38. </body>
  39. </html>

Chyba nic nazwyczajnego, proste wyswietlanie rekordow - idziemy dalej....
plik paleta.php , który odpowiedzialny jest za pobranie koloru z palety:
  1. <table width="50px;">
  2. <tr><td bgcolor='#5478A4' onclick="wybierz_kolor('#5478A4');" style="curosr: hand;">&nbsp;</td><td bgcolor='#A534EF' onclick="wybierz_kolor('#A534EF');" style="curosr: hand;">&nbsp;</td></tr>
  3. <tr><td bgcolor='#84D6E2' onclick="wybierz_kolor('#84D6E2');" style="curosr: hand;">&nbsp;</td><td bgcolor='#19D2A5' onclick="wybierz_kolor('#19D2A5');" style="curosr: hand;">&nbsp;</td></tr>

za 'dynamiczne' pokolowanie tabelki:
  1. opener.$('tr<?echo $_GET['id'];>').style.background=kolor;

oraz zapisanie do bazy danych:

  1. advAJAX.post({
  2.           url : "zapisz_kolor.php",
  3.           parameters:{
  4.                kolor: kolor,
  5.                id: '<?echo $_GET['id'];?>'
  6.   },
  7.   onSuccess : function(obj) {
  8.   }
  9. });
Cały plik wygląda następująco:
  1.  
  2. </head>
  3. <script type="text/javascript" src="advajax.js"></script>
  4. function wybierz_kolor(kolor){
  5.     opener.$('tr<?echo $_GET['id'];?>').style.background=kolor;
  6.     advAJAX.post({
  7.             url : "zapisz_kolor.php",
  8.             parameters:{
  9.                 kolor: kolor,
  10.                 id: '<?echo $_GET['id'];?>'
  11.             },
  12.             onSuccess : function(obj) {
  13.             }
  14.    });
  15. }
  16. <table width="50px;">
  17. <tr><td bgcolor='#5478A4' onclick="wybierz_kolor('#5478A4');" style="curosr: hand;">&nbsp;</td><td bgcolor='#A534EF' onclick="wybierz_kolor('#A534EF');" style="curosr: hand;">&nbsp;</td></tr>
  18. <tr><td bgcolor='#84D6E2' onclick="wybierz_kolor('#84D6E2');" style="curosr: hand;">&nbsp;</td><td bgcolor='#19D2A5' onclick="wybierz_kolor('#19D2A5');" style="curosr: hand;">&nbsp;</td></tr>
  19. </body>
  20. </html>


Pozostaje już tylko plik zapisujacy dane do bazy. zapisz_kolor.php:
  1. <?
  2. $dbhost = 'localhost';
  3. $dblogin = root;
  4. $dbhaslo = '';
  5. $db = test;
  6.  
  7. mysql_connect ("$dbhost","$dblogin","$dbhaslo") or die ("Nie masz uprawnien");
  8. mysql_select_db ("$db");
  9.  
  10. $kolor = mysql_escape_string($_POST['kolor']);
  11. $rekord = (int)$_POST['id'];
  12. $query = "SELECT * FROM kolory WHERE ID_rekord=$rekord LIMIT 1;";
  13. $result = mysql_query($query);
  14.  
  15.  
  16.     $query = "UPDATE kolory SET Kolor='$kolor' WHERE ID_rekord=$rekord;";
  17. }
  18. else{
  19.     $query = "INSERT INTO kolory (Kolor, ID_rekord) VALUES ('$kolor',$rekord);";
  20. }
  21. $result = mysql_query($query);
  22.  
  23. ?>
Jestem pewnien, że dla Was to pestka smile.gif

Gotowy i działający przykład można zobaczyć tutaj.

Powodzenia smile.gif

Ten post edytował TomASS 13.04.2006, 08:01:26


--------------------
Go to the top of the page
+Quote Post
bigZbig
post 13.04.2006, 07:08:50
Post #77





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


@TomASS -> ciekawy przyklad - lubie zabawy z kolorami - tylko, co Ty zrobiles, ze sie Twoj post tak rozjechal?


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
Go to the top of the page
+Quote Post
nospor
post 13.04.2006, 14:32:56
Post #78





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Z racji faktu, iż powstał artykuł na podstawie topicu, topic zostaje przeniesiony na właściwe forum.
Dodatkowo, zaraz utworzę topic na XML, AJAX , w którym będą zbierane linki do artykułów, by mieć wszystko pod ręką


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
marcz
post 17.04.2006, 18:54:51
Post #79





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.07.2003
Skąd: Białystok

Ostrzeżenie: (0%)
-----


Witam!

Muszę przyznać, iż idea AJAXu bardzo mnie zainteresowała. W ogóle postanowiłem nie stać w miejscu, a zrobić krok do przodu i mała przesiadkę technologii. Czas odejść od schematu prosty HTML (tabelki) + prosty JS (używany właściwie symbolicznie) + PHP4 + MySQL.
Postanowiłem zacząć porządnie się edukować w celu wykorzystania technologii XHTML + AJAX + PHP5 (+ MySQL oczywiście). Mam jednakże kilka pytań bardziej ideologicznych niż technicznych (te pewnie będą później winksmiley.jpg). A mianowicie:

2. Troszeczkę nie rozumiem idei przedstawionej w przykładzie "php Solutions - Przykład 2. - Stronicowanie danych". O ile dobrze wywnioskowałem, to jest wysyłane zapytanie o odpowiednie dane, następnie są one pobierane z bazy i formowane w ładny i zgrabny XML, przesyłane na stronę i prezentowane w postaci tabelki. Dlaczego więc na poziomie pobierania danych z bazy nie upakować ich od razu w tabelkę, przesłać na stronę wyświetlić? Dlaczego stosujemy fazę pośrednią w postaci XMLa?

Z góry dziękuję za wytłumaczenie mi tych kwestii, będę wdzięczny smile.gif.

Wycialem elementy nie majace nic wspolnego z tematem - NuLL

Ten post edytował NuLL 17.04.2006, 21:46:36


--------------------
Pozdrawiam,
MarcZ
Go to the top of the page
+Quote Post
TomASS
post 17.04.2006, 21:54:11
Post #80





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Cześć smile.gif

ad 2 skor pyt 1 zostało wycięte winksmiley.jpg

Załóżmy, że chcesz wykorzsytać plik generujący XML nie tylko do wstawiania danych do tabelek, ale ten sam plik chcesz wykorzystac gdzieś indziej - po co robić dwa razy tan sam plik tylko z różnym sposobem wyświetlania plików? smile.gif
Jeśli chciałbyś zmienić wygląd tabelki to po co ingerować w sposób przesyłu tych danych?
XML jest jednym ze standardów do konwersji i przesyłania danych (tak chyba to można w skrócie napisać). Zarówno php jak i JavaScript posiadają mechanizmy do 'obróbki' takich danych.


Powodzenia i wytrwania w postanowieniach smile.gif


--------------------
Go to the top of the page
+Quote Post

6 Stron V  « < 2 3 4 5 6 >
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: 25.04.2024 - 17:46