Witam,
mój problem polega na tym, że skrypt nie działa prawidłowo po przeglądarkami internet explorer (IE7 i IE 8). W FireFoxie i operze jest wszytsko tak jak należy.
zadadaniem jest asynchroniczne dodanie rekordu do bazy danych.
w pliku index: mamy coś takiego:
<input type="text" id="2-1" class="ocena" onChange="zapisz('23','2','1','2-1','2')"/>
var xmlHttp = createXmlHttpRequestObject();
var uczen;
var przedmiot;
var ocena;
var id_oceny;
var div;
function createXmlHttpRequestObject()
{
if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
function zapisz(fuczen,fprzedmiot,fwpisujacy,fdiv,fid_oceny)
{
uczen=fuczen;
przedmiot=fprzedmiot;
ocena=document.getElementById(fdiv).value;
if (ocena=='') {ocena=0;}
id_oceny=fid_oceny;
div=fdiv;
wpisujacy=fwpisujacy;
zapisz_ocene();
}
function zapisz_ocene()
{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
stat="quickstart.php?u=" + uczen
+ "&p=" + przedmiot
+ "&o=" + ocena
+ "&io=" + id_oceny
+ "&wp=" + wpisujacy
;
xmlHttp
.open
("GET", stat, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
setTimeout('zapisz_ocene()', 1000);
}
function handleServerResponse()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
helloMessage = xmlDocumentElement.firstChild.data;
//tutaj wpisać co ma zrobić po zapisaniu oceny - zostanie uzupełnione
}
else
{
alert("Wystąpił błąd podczas uzyskiwania dostępu do serwera: " + xmlHttp.statusText);
}
}
}
W FF i operze informacja zawsze zostanie dodana do bazy, natomiast w IE raz się doda, a raz nie....
Prosze o pomoc
Ten post edytował adrian_n1987 1.11.2009, 13:12:32