Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 15.12.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Witam.
Zakupiłem niedawno książkę: "AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych" (wyd. Helion) i mam niestety problem już na pierwszym przykładzie z tej książki (zapewne jakiś błąd w druku, bo kod jest prawie że w 100% skopiowany z książki). Niestety - moja mała (jeszcze) wiedza na temat AJAKSA nie pozwala mi rozwiązać problemu samodzielnie (uprzedzając pytania - Google też nie pomogło). Plik index.html:
Plik quickstart.js: Kod var xmlHttp = createXmlHttpRequestObject(); function createXmlHttpRequestObject() { var xmlHttp; if (window.ActiveXObject) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttp = false; } } else { try { xmlHttp = new XMLHttpRequest(); } catch (e) { xmlHttp = false; } } if (!xmlHttp) { alert("Błąd podczas tworzenia obiektu XMLHttpRequest!"); } else { return xmlHttp; } } function process() { if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) { name = encodeURIComponent(document.getElementById("myName").value); xmlHttp.open("GET", "quickstart.php?name=" + name, true); xmlHttp.onreadystatechange = handleServerResponse; xmlHttp.send(null); xmlHttp.overrideMimeType("application/xhtml+xml; charset=utf-8"); } else { setTimeout("process()", 1000); } } function handleServerResponse() { if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { xmlResponse = xmlHttp.responseXML; xmlDocumentElement = xmlResponse.documentElement; helloMessage = xmlDocumentElement.firstChild.data; document.getElementById("ajaxMessage").innerHTML = "<em>" + helloMessage + "</em>"; setTimeout("process()", 1000); } else { alert("Wystąpił błąd podczas uzyskiwania dostępu do serwera: " + xmlHttp.statusText); } } } Plik quickstart.php:
Po otworzeniu strony pod Firefoksem, Firebug wyrzuca cały czas jeden i ten sam error:
Moje pytanie brzmi - w jaki sposób poprawić wywołanie funkcji handleServerResponse(), tak aby kod ten wreszcie zaczął działać? Z góry dziękuję za pomoc. Ten post edytował m010ch 30.09.2007, 11:16:48 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 15.12.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
ta książka ma kilka takich niedoróbek. Ściągnij kody źródłowe ze strony Heliona i porównaj ze swoim kodem. Uwierz mi to pierwsze co zrobiłem - kod jest identyczny jak ten w książce. Aczkolwiek uruchomiłem go przed chwilą i... skrypt zaczął działać (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Najlepsze jest to, że mój doprowadziłem do identycznej postaci i dalej nic. Spróbowałem podejść do sprawy od innej strony i sprawdziłem kodowania w jakich tworzone były pliki na potrzeby książki - okazało się, że właśnie tu leży problem! Pliki quickstart.js i quickstart.php stworzone przez autora, kodowane były w ISO-8859-2 - ja mam automatycznie ustawione kodowanie UTF-8 dla wszystkich plików. Po zmianie w Notepad++ na Koduj w ANSI (+ Koduj w UTF-8 bez BOM) - zaczęło działać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pytanie jednak mam nadal - dlaczego pliki te mają problemy z działaniem przy ustawionym kodowaniu UTF-8? p.s. Widzę, że nadal są problemy z polskimi znakami (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Gdy wpisze w inputa: Filip, Marcin czy Grzegorz, skrypt działa oka, ale gdy próbuje użyć go dla imienia: Rafał czy Michał dostaje: Kod Błąd parsowania XML: niezdefiniowana jednostka Obszar: http://localhost/ajax/quickstart/quickstart.php?name=Rafa%C5%82 Numer linii 1, kolumna 70: Kod Błąd parsowania XML: niezdefiniowana jednostka Obszar: http://localhost/ajax/quickstart/quickstart.php?name=Micha%C5%82 Numer linii 1, kolumna 71:
Ten post edytował m010ch 30.09.2007, 11:22:58 |
|
|
|
m010ch Problem początkującego - dlaczego nie działa ten kod? 30.09.2007, 00:37:34
atomek4 Cześć,
ta książka ma kilka takich niedoróbek. Ści... 30.09.2007, 09:00:25
atomek4 Sprawdziłem, wydaje mi się, że problem leży w BOM-... 30.09.2007, 11:20:43
m010ch Cytat(atomek4 @ 30.09.2007, 10:20:43 ... 30.09.2007, 11:56:26
atomek4 Co parsowania ogonków, to w tych kodach z książki ... 30.09.2007, 13:13:28
m010ch Dzięki - jesteśmy coraz bliżej rozw... 30.09.2007, 14:03:40
atomek4 Chyba wiem o co chodzi, błąd tym razem dotyczy fun... 30.09.2007, 14:16:59
m010ch Dzięki wielkie atomek4!
Problem został prawi... 30.09.2007, 18:03:34 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 12:44 |