![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 266 Pomógł: 0 Dołączył: 4.01.2007 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Przeszukując właśnie tematy tego forum pt. "polskie znaki w AJAX" doszedłem do wniosku, że napisze właśnie jak zapobiec "krzakom" w AJAX.
1. Pierwszą rzeczą, którą trzeba zrobic jest wstawienie meta tag np. w pliku index.html
2. Następnie, w pliku np. ajax.js dodajemy linijkę kodu:
U mnie wygląda to tak:
3. przy pobieraniu danych z bazy w pliku np. ajax.class.php robimy zapytanie:
najlepiej przed zapytaniem przy pobieraniu danych. U mnie cała funkcja wygląda tak:
Myślę, że choć trochę pomogłem Pozdrawiam. Ten post edytował SN@JPER^ 4.05.2007, 09:49:45 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Ładnie
![]() Ja swoją drogą, akurat korzystając z AJAXa mało razu miałem problemy z polskim znaczkami. Jak się zrobi wszystko w porządku i po kolei to nie powinno być problemu:
i do tego ewentualnie:
Jedyną literówką którą wychwyciłem to:
Na pewno komuś się Twoja porada przyda ![]() -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 266 Pomógł: 0 Dołączył: 4.01.2007 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Poprawione
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio robie system komentarzy uzywajac Prototype.js. Kodowanie ... niestety musze uzywac ISO-8859-2. Przy wysylaniu formularza zauwazylem, ze XMLHttpRequest wysyla UTF nawet jezeli w opcjach Ajax.Request - Prototype ustawie ISO. Na serwerze przekodowuje sobie UTF na ISO ale srednio podoba mi sie takie wyjscie.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 288 Pomógł: 12 Dołączył: 2.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pozwolę sobie tutaj napisać, że do polskich znaków w AJAXie można używać biblioteki iconv.
Strona PHP z której AJAX pobiera dane:
Po wysłaniu danych np. POST, a przed dodaniem ich do bazy, trzeba je odpowiednio przygotować do niej:
Ten post edytował tommy4 13.07.2007, 12:30:50 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
A ja mam taki problemik, używam advAjax wszystkie pliki maja kodowanie utf-8 i w takim sa zapisane php nawet wysyła nagłówek ale jak wysyłam dane przez formularz to w ie i tak mam krzaki zamiast polskich znaków. O co chodzi?
php.php
index.html
//pod ff działa wyśmienicie Ten post edytował deirathe 20.07.2007, 11:57:48 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 21.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
A czy mógłby ktoś napisać, jak ustawić polskie znaki w skrypcie "Ajax dynamic list" ze strony: http://www.dhtmlgoodies.com/index.html?whichScr....
oraz
we właściwe miejsca wstawiłem, ale
już nie wiem, gdzie w ajax.js umieścić ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 19.06.2007 Skąd: Gdańsk Ostrzeżenie: (10%) ![]() ![]() |
Ja ze swojej strony chciałbym zauważyć, że skoro:
Kod <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> kolega używa na końcu / to znaczy najprawdopodobniej, że DOCTYPE mówi XHTML. W takim wypadku wydaje mi się, że słuszniejszym byłoby: Kod <meta http-equiv="Content-type" content="application/xhtml+xml; utf-8" /> (oczywiście mam na myśli application/xhtml+xml;, nie utf) O czym [m. in.] można przeczytać tu: http://pornel.net/xhtml Co do reszty - ciekawe, dzięki. Sporo się dowiedziałem ![]() Ten post edytował yarpo 21.08.2007, 22:37:20 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 1 Dołączył: 2.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem z kodowaniem znaków które ujawnia się przy wykorzystaniu AJAX. Korzystam z biblioteki XAJAX, w której jest ustawione kodowanie na windows-1250 i to działa tzn. gdy jest aktualizowana strona przy pomocy AJAX, to tekst jest poprawnie wyświetlany z polskimi znakami lecz w tym tekście zawarty jest formularz z polami typu input. Po wypełnieniu formularza i kliknięciu wyślij tekst w pisany w tych polach od razu jest rozwalony pojawia się takie coś – zamiast ala ma kota ąśół jest to ala ma kota ąśłó zami. Dane z pól są wysyłane do metody w postaci tablicy przy pomocy takiego polecenia "xajax_xajax(xajax.getFormValues('nazwaformularza'));" I metoda, które odbiera dane z formularza już dostaje błędne dane. Eksperymentowałem z mianą danych w kodowaniu w bibliotece XAJAX define ('XAJAX_DEFAULT_CHAR_ENCODING', 'windows-1250' ); na kodowanie iso-8859-2 -> efekt - tekst i tekst z pól formularza same krzaki na kodowanie urf-8 to wartości z formularza było okej ale tekst wyświetlany przez AJAX był z krzakami. kodwanie windows-1250 - jest poprawnie wyswietlany tekst lecz dane z formularza są w postaci krzaków. Dodam że w każdej w szablonie widoku jest dodane kodowanie <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> Szukałem rozwiązania na forum lecz poruszane tematy głównie tyczą się z problemami z bazą danych. A mój problem to z samą biblioteką XAJAX. Udało mi się rozwiącać $xajax = new xajax('/ajax/'); $xajax->setCharEncoding('ISO-8859-2'); $xajax->decodeUTF8InputOn(); $xajax->registerFunction("processKontaktForm"); ... function processKontaktForm($aFormValues) { $objResponse = new xajaxResponse(); $objResponse->setCharEncoding('ISO-8859-2'); $send_email_res = sendKontaktEmail($aFormValues); } Należy się upewnić czy program, w którym piszemy kod ma ustawione też kodowanie na ISO-8859-2. Np w Zend musiałem zmienić kodowanie domyślne dla projektu. Ten post edytował kaniagandzowski 10.09.2007, 13:59:05 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 603 Pomógł: 131 Dołączył: 24.07.2007 Skąd: Górny Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Witam,
też miałem problem z polskimi znakami. Używam advAJAX. Andulka, może Ci to pomoże. Nie pomogło mi dodanie w dwóch miejscach linijki:
Polskie znaki pojawiły się dopiero po dodaniu:
kod (zaczyna się około 283 linii) CODE if (obj.method == "POST" && typeof obj.xmlHttpRequest.setRequestHeader != "undefined") { obj.xmlHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); obj.xmlHttpRequest.send(obj.queryString); } else if (obj.method == "GET") obj.xmlHttpRequest.send(''); }; zamieniłem na: CODE if (obj.method == "POST" && typeof obj.xmlHttpRequest.setRequestHeader != "undefined") { obj.xmlHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); obj.xmlHttpRequest.send(obj.queryString); obj.xmlHttpRequest.overrideMimeType('text/html; charset=ISO-8859-2'); } else if (obj.method == "GET"){ obj.xmlHttpRequest.send(''); obj.xmlHttpRequest.overrideMimeType('text/html; charset=ISO-8859-2'); } }; I pomogło. Mam nadzieję, że komuś się to przyda. edit: Działa w FF, w IE i Operze nie. Ten post edytował lord_t 29.12.2007, 09:13:10 -------------------- |
|
|
![]() ![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 15.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
WITAM! To mój pierwszy post na tym forum!
Od dawna mam problemy z polskimi znakami z bazy danych przez ajax'a! Mam pytanie: o jakiej z bibliotek Ajaxa piszecie?? Ja znam "sajax", "advajax"(troszkę) Z kąd mogę pobrać bibliotekę o której mowa w pierwszym poście? Pozdrawiam! |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Punkt drugi nie działa:
>> xmlHttp.overrideMimeType('text/html; charset=ISO-8859-2');) wyskakuje bład, że metoda nie istnieje (testowane na IE i firefoxie). Występowanie krzaczków w polskich literach można podzielić na 2 etapy: 1. Wysyłanie danych przez obiekt xmlhttprequest. Np przesyłam łańcuch znaków "wkrętarka" i w skrypcie php otrzymuję "wkr%u0119tarka". Do zamiany tych znaków używam poniższej funkcji:
Wystarczy druga częsć tablicy, pierwsza częsć działa przy dekodowaniu utf-8 w plikach/dokumentach, ale obiekt xmlhttprequest koduje dane w inny sposób. 2. Odbieranie danych przez obiekt xmlhttprequest. W skrypcie php należy wysłać nagłówek "Content-type":
Ten post edytował sarat20 17.02.2008, 03:44:38 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 2 Dołączył: 17.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
zamieniłem na: CODE if (obj.method == "POST" && typeof obj.xmlHttpRequest.setRequestHeader != "undefined") { obj.xmlHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); obj.xmlHttpRequest.send(obj.queryString); obj.xmlHttpRequest.overrideMimeType('text/html; charset=ISO-8859-2'); } else if (obj.method == "GET"){ obj.xmlHttpRequest.send(''); obj.xmlHttpRequest.overrideMimeType('text/html; charset=ISO-8859-2'); } }; I pomogło. Mam nadzieję, że komuś się to przyda. edit: Działa w FF, w IE i Operze nie. Po dodaniu w FF 2.0.0.12 obj.responseXML has no properties" title="Zobacz w manualu PHP" target="_manual a pod IE6 Obiekt nie obsługuje tej wlaściwości lub metody" title="Zobacz w manualu PHP" target="_manual tylko że ja dodałem Kod obj.xmlHttpRequest.overrideMimeType('text/html; charset=UTF-8');
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 86 Pomógł: 0 Dołączył: 28.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Przez ostatniczas próbuję rozgryźć Ajaxa i mam teraz problem z kodowaniem znaków. W momencie gdy pobieram tekst lub wywołuje skrypt PHP poprzez Ajaxa, to pojawiają mi się krzaczki zamiast polskich znaków. Wszystkie pliki zapisuje w utf-8. Problem pojawia się tylko w przeglądarce Firefox. TUTAJ jest stronka na której testuję. Wszytko mam ustawione na utf-8 i nie mam pojęcia czemu nie chce działać... |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 13.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dla strony w ISO-8859-2.
Po stronie PHP:
Zwracane teksty puszczamy przez powyższą funkcję. Po stronie JS:
Sprawdzone pod: IE 6/7, Firefox 2/3, Opera. Ten post edytował inż. Piniol 13.08.2008, 09:23:33 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 21.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Napotkałem dziwny problem, korzystam z ajaxa, aby sprawdzać dostępność loginu w bazie danych.
Po wpisywaniu nowego loginu, skrypt sprawdza, czy login już nie istnieje. Jeśli login istnieje, pole podświetla się na czerwono, jeśli nie, to pole podświetla się na źółto i można taki login dodać do bazy danych. Jedyne, co nie działa, to sprawdzanie loginów z polskimi diakrytykami w Internet Explorerze (przez ajax). W FF i Operze działa znakomicie. Skrypt oraz baza danych kodowane są w UTF-8. Czy ktoś ma jakiś pomysł, żeby skrypt działał poprawnie pod IE ? index.php:
plik wykorzystywany przez ajax do zapytań w bazie danych: infoajax.php
obsługa ajaxa: scripts.js
Update 2008.09.01. Udało mi się rozwiązać problem. W pliku scripts.js należy zamienić metodę GET na POST:
Ten post edytował andulka 1.09.2008, 10:14:55 |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wczoraj całkiem przypadkiem trafiłem na 2 funkcje które mogą pomóc w walce z polskimi znakami dla tych którzy się już poddali.
http://jdstiles.com/java/cct.html -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 6.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
u mnie każdy plik jaki otwieram przez ajax zaczyna się od
ale zauwazylem ze po dodaniu do MySQL danych z polskimi znakami mialem znaczku typu %u106 zamiast polskiej litery to napisalem prosta funkcje ![]()
przepuszczam przez nią zapisane już dane ![]() Pozdrawiam i mam nadzieje że komuś się przyda ![]() Ten post edytował esiek 18.09.2009, 23:46:03 -------------------- allebhp.pl
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
za pierwszym razem też robiłem takie funkcje str_replace, ale potem się skapnąłem, że się nie opłaca, bo już są takie funkcje zrobione i mamy to za darmola
![]() oczywiście wszystko jest na utf-8, przy wysyłaniu zapytania ajaxem: encodeURIComponent przy odbieraniu przez php: rawurldecode i nie ma żadnych krzaczków -------------------- :]
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 6.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzieki i przetestuje
![]() -------------------- allebhp.pl
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 3.05.2025 - 02:06 |