Firsly Ben Shyam ile kabul edeceğini ve aynı zamanda Firefox için Firebug'u yüklemek; Bu javascript hata ayıklama için büyük bir yardımcı olacaktır.
Neyse, hat
xmlHttp.onreadystatechange = FetchComplete(layername);
ne istediğiniz değil, hangi FetchComplete(layername)
xmlHttp.onreadystatechange
için sonucunu atar. Olması gerekir
xmlHttp.onreadystatechange = FetchComplete;
Ama o zaman layername
geçen sorun var.
Eğer kolayca dışında tanımlanan değişkenler kullanabilirsiniz anonim bir iç fonksiyonu olarak onreadystatechange tanımlamak, bu nedenle eğer böyle bir şey yapabilirsiniz:
function GetAuctionData(pk) {
var xmlHttp=GetXmlHttpObject();
var layer = "Layer2";
if(xmlHttp==null) {
alert("Your browser is not supported?");
}
var url="get_auction.php?";
url=url+"cmd=GetAuctionData&pk="+pk;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
document.getElementById(layer).innerHTML=xmlHttp.responseText
} else if (xmlHttp.readyState==1 || xmlHttp.readyState=="loading") {
document.getElementById(layer).innerHTML="loading"
}
};
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
Bir Kapanış yaratıyor çünkü layer
, GetAuctionData yerel bir değişken (olarak tanımlanır), ancak anonim işlevi erişilebilir. Ben yukarıdaki işlevini test değil unutmayın, ancak prensip olarak çalışması gerekir.