javascript denir değil

3 Cevap php

Ben ne zaman tek başına bir dosya içinde, bir sayfadan doğru denir edilecek aşağıdaki javascript işlevleri vardır.

function deleteItem(layer, url) {
    var xmlHttp=GetXmlHttpObject();
    if(xmlHttp==null) {
    	alert("Your browser is not supported?");
    }
    xmlHttp.onreadystatechange = function() {
    	if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    		if(xmlHttp.responseText == 'result=true') {
    			var row = document.getElementById(layer);
    			row.parentNode.removeChild(row);
    		}
    		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);
}
function deleteRec(layer, pk) {
    url = "get_records.php?cmd=deleterec&pk="+pk+"&sid="+Math.random();
    if (confirm("Confirm Delete?")) {
    	deleteItem(layer, url);
    }
}
function GetXmlHttpObject() {
    var xmlHttp=null;
    try {
    	xmlHttp=new XMLHttpRequest();
    }
    catch (e) {
    	try {
    		xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	catch (e) {
    	}
    }
    return xmlHttp;
}

O kadar gibi denir:

 echo '<td><a href="#" onclick="deleteRec(\'article_' . $pk .'\', \'' . $pk . '\')">DELETE</a></td>' . "\n";

Bu onaylama iletişim kutusunu görüntüler, ve olması gerektiği gibi, tamam tıklandığında ise sayfasını silmek olacaktır.

Ancak.

Benim diğer gerekli fonksiyonları js dosyasına yerleştirildiğinde, hiçbir şey olmaz.

function update(layer, url) {
    var xmlHttp=GetXmlHttpObject();
    if(xmlHttp==null) {
    	alert("Your browser is not supported?");
    }
    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);
}
function updateByPk(layer, pk) {
    url = "get_auction.php?cmd=GetAuctionData&pk="+pk+"&sid="+Math.random();
    update(layer, url);
}
function updateByQuery(layer, query) {
    url = "get_records.php?cmd=GetRecordSet&query="+query+"&sid="+Math.random();
    update(layer, url);
}
function updateByPage(layer, query, pg) {
    url = "get_records.php?cmd=GetRecordSet&query="+query+"&pg="+pg+"&sid="+Math.random();
    update(layer, url);
}
function deleteItem(layer, url) {
    var xmlHttp=GetXmlHttpObject();
    if(xmlHttp==null) {
    	alert("Your browser is not supported?");
    }
    xmlHttp.onreadystatechange = function() {
    	if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    		if(xmlHttp.responseText == 'result=true') {
    			var row = document.getElementById(layer);
    			row.parentNode.removeChild(row);
    		}
    		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);
}
function deleteRec(layer, pk) {
    url = "get_records.php?cmd=deleterec&pk="+pk+"&sid="+Math.random();
    if (confirm("Confirm Delete?")) {
    	deleteItem(layer, url);
    }
}
function GetXmlHttpObject() {
    var xmlHttp=null;
    try {
    	xmlHttp=new XMLHttpRequest();
    }
    catch (e) {
    	try {
    		xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");

    	}
    	catch (e) {
    	}
    }
    return xmlHttp;
}
function makewindows(html) {
    child1 = window.open ("about:blank");
    child1.document.write(html);
    child1.document.close();
}

Orada JavaScript kendisi ile yanlış bir şey olduğu için görünmüyor, bu yüzden bir şey bir şekilde iptal ediliyor, merak ediyorum. Basit bir uyarı hiçbir şey deleterec () değiştirirken bile olur.

3 Cevap

İlk olarak, bu metin bloğundaki:

        if(xmlHttp.responseText == 'result=true') {
                // Here you remove the appropriate element from the DOM rather than trying to update something within the DOM
                var row = document.getElementById(layer);
                row.parentNode.removeChild(row);
        }
        document.getElementById(layer).innerHTML=xmlHttp.responseText;

Aslında bu hat istemiyorum:

document.getElementById(layer).innerHTML=xmlHttp.responseText;

Ayrıca, fonksiyonlar listesinde DeleteItem işlevi önce ilk deleteRec işlevini yerleştirmeyi deneyin.

Ben de size Firebug yüklü Firefox'ta bu testi öneriyoruz. Bu size sayfada meydana gelen herhangi bir Javascript hata gösterecektir.

Ben JS kodu tespit edilen bir hata var acaba? Senin Javascript içinde bir sözdizimi hatası varsa, tarayıcı muhtemelen sadece onun herhangi çalışmaz. Eğer Firebug gibi hata ayıklayıcı kullanarak ediyorsanız, bu hatayı izini yardımcı olacaktır.

Alternatif olarak, bir şeyler kırılıyor hangi size söyleyecektir, bir defada bir işlev eklemeyi deneyin.

belki sayfanın içine js dosyasını dahil etmek için kullandığınız html etiketi doğru değil

Bir komut dosyası eklemek için doğru yolu

<script type="text/css" src="myfile.js"></script>

Aşağıdaki irade not

<script type="text/css" src="myfile.js" />

Ben de herhangi bir sorun varsa size bildireceğiz güzel bir uygulama Firefox'un Hata Konsolu kullanmak için tavsiye ederim.