Ich weiss von Basiii aus dem letzten Thread, dass ich eine var global setzen kann.
Dachte ich habs verstanden. Evtl ist mir auch ein anderer Fehler passiert.
Das problem:
Ajax request auf dieser Testseite: Testseite
Functionname:
Bekomme Fehler:
ZitatUncaught exception: ReferenceError: Undefined variable: element_id
Error thrown at line 1, column 0 in http://betaistats.no-ip.org:21891/index.php?action=pcheck:
ajax_requestByElementId(element_id)
element_id wird ja aber gesetzt, also reingeschickt bei:
window.onload = function(){
( ...)
ajax_requestByElementId("last_chks");ajax_requestByElementId("last_bans");ajax_requestByElementId("backend_player_pool");
...
Vorher hatte ich für jede Art Abfrage eine eigene Function, was aber sinnlos war, da der Ablauf immer gleich ist.
Also hab ich alles in eine Function geschrieben, und nun bekomm ich den Fehler
Komplette Function hier (oder halt im Quellcode auf Testseite)
function ajax_requestByElementId(element_id)
{
var xmlhttp;
var element_id;
if(window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{ // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById(element_id).innerHTML = xmlhttp.responseText;
if(document.getElementById(element_id).innerHTML != "NA"){
setTimeout("ajax_requestByElementId(element_id)", 3000);
}else{
setTimeout("ajax_requestByElementId(element_id)", 10000);
}
}
if(xmlhttp.readyState == 4 && xmlhttp.status != 200){
document.getElementById(element_id).innerHTML="Error: " + xmlhttp.status;
setTimeout("ajax_requestByElementId(element_id)", 10000);
}
}
xmlhttp.open("GET","index.php?action=ajax&request="+element_id,true);
xmlhttp.send();
}
Alles anzeigen
EDIT: ich weiss jetzt, dass es beim selbst aufrufen element_id nicht "mitnimmt".
Aber warum das?
Beim ersten Aufruf bekomm ich über alert(element_id) den richtigen Wert.
Warum übergibt aber > setTimeout("ajax_requestByElementId(element_id)", 3000); nicht den Wert, der in element_id steckt, and die Function?