Gawin: Variable bleibt ausserhalb einer funktion immer undefined

Ich schreibe gerade eine Registrierung und will das ganze mit dem XMLHttpRequest Object machen und hab mir dafür eine kleine funktion geschrieben:

var ajaxPost = function(url, params){  
  
    this.url = url;  
  
    this.params = params;  
  
  
  
    var _this = this;  
  
  
  
    try{  
  
        this.http = new XMLHttpRequest();  
  
    }catch(e){  
  
        try{  
  
            this.http = new ActiveXObject("Microsoft.XMLHTTP");  
  
        }catch(e){  
  
            this.http = false;  
  
        }  
  
    }  
  
  
  
    this.onSuccess = function(txt, xml){  
  
        //alert(txt);  
  
    }  
  
  
  
    this.http.open("POST", url, true);  
  
    //Send the proper header information along with the request  
  
    this.http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
  
    this.http.setRequestHeader("Content-length", params.length);  
  
    this.http.setRequestHeader("Connection", "close");  
  
  
  
    this.Do = function(){  
  
        this.http.onreadystatechange = function() {//Call a function when the state changes.  
  
            if(_this.http.readyState == 4 && _this.http.status == 200) {  
  
                _this.onSuccess(_this.http.responseText, _this.http.responseXML);  
  
            }  
  
        }  
  
        this.http.send(params);  
  
    }  
  
}

das funktioniert auch soweit aber beim ausführen gibt es ein Problem:

var test = new ajaxPost("chat.php", "cmd=check_name&name=test");  
  
    test.onSuccess = function(txt, xml){  
  
        return txt;  
  
    }  
  
    alert(test.Do());

Damit spuckt das alert immer undefined aus und wenn ich das wie folgt mache:

var bla;  
var test = new ajaxPost("chat.php", "cmd=check_name&name=test");  
  
    test.onSuccess = function(txt, xml){  
  
        bla = txt;  
        alert(bla);  
  
    }  
    test.Do();  
    alert(bla);

spuckt alert in test.onSuccess alles korreckt aus aber das alert danach dann nicht mehr. Kann mir einer sagen was ich falsch mache? ich such schon seit gestern nach ner möglichkeit den responseText auch ausserhalb der funktion zu nutzen!

  1. spuckt alert in test.onSuccess alles korreckt aus aber das alert danach dann nicht mehr. Kann mir einer sagen was ich falsch mache? ich such schon seit gestern nach ner möglichkeit den responseText auch ausserhalb der funktion zu nutzen!

    guck doch mal genua nach, was AJAX bedeutet und warum es einen onSuccess Event gibt. Du kannst den Text nicht ausserhalb nutzen, weil er noch nicht vorhanden ist.

    Struppi.

    1. guck doch mal genua nach, was AJAX bedeutet und warum es einen onSuccess Event gibt. Du kannst den Text nicht ausserhalb nutzen, weil er noch nicht vorhanden ist.

      Struppi.

      Kann ich den Text denn nicht irgent wie ausserhalb zugänglich machen?

      1. guck doch mal genua nach, was AJAX bedeutet und warum es einen onSuccess Event gibt. Du kannst den Text nicht ausserhalb nutzen, weil er noch nicht vorhanden ist.

        Struppi.

        Kann ich den Text denn nicht irgent wie ausserhalb zugänglich machen?

        Ok einfach ne funktion auserhalb definieren die einer variable einen text zuweist und fertig dann kann ich den text auch ausserhalb verwenden.

      2. Kann ich den Text denn nicht irgent wie ausserhalb zugänglich machen?

        Ja, in dem du in dem onSuccess Event den Text z.b. an eine Funktion weitergibst.

        Struppi.