AJAX (Asynchronous JavaScripting and XML) Forum
   Forum über „Asynchronous JavaScripting and XML“ und Web 2.0    AJAX Forum AJAX Blog AJAX Wiki AJAX Bücher

Zurück   AJAX (Asynchronous JavaScripting and XML) Forum > Für Entwickler > JavaScript


Digitalkamera
Antwort
 
LinkBack Themen-Optionen
Alt 13.06.2007, 15:11   #1 (permalink)
Neuer Benutzer
 
Registriert seit: 07.05.2007
Beiträge: 18
Standard Eigene Klasse + mootoolsJson

Hallo liebe liebenden xD

Ich hab folgendes Problem.


Ich hab ne eigene Klasse, in der ich eine login()methode habe.

PHP-Code:
this.login                        = function(){
        
url "register.php?action=checkusername&username="+this.username+"&password="+this.password;
        var 
jSonRequest = new Json.Remote(url,{
            
autoCanceltrue,
            
onComplete : function(erg){
                
            }
        }).
send();
    } 
Das ganze sende ich mit json von mootools ab. sweit ganz gut. Nun würde ich gerne das ergebnis (erg) in meiner klasse wieder zurück haben. Bis jetzt hab ich davor immer eine variable am anfang der seite angelegt und als art cache hergenommen. Da hab ich aber noch rein auf functionen gesetzt. Wie mache ich das nun in einer klasse?

Denn wenn ich in die Funktion bei onComplete : this.tuWas(erg) reinsetze, sagt er mir dass "erg" nicht gesetzt ist, also nicht vorhanden. mach ich "this.tuWas" in die function(erg){} rein, sagt er mir das this.tuWas nicht vorhanden ist, is ja auch klar. Also wie kann ich das handlen?


Der einzigste weg den ich bis jetzt gefunden habe, ist von der Klasse eine variable zu erstellen (am Anfang von der Seite), a la:

var user = new User();

und dann in der onComplete Methode user.tuWas(); zu schreiben....is aber mehr als....schlecht

Kann mir da wer weiterhelfen? Oder denk ich verkehrt?


Schon jetzt danke für evtl. Antworten.


LG


Marcel
.sophor ist offline   Mit Zitat antworten
Alt 13.06.2007, 15:58   #2 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Darker
 
Registriert seit: 10.04.2007
Ort: Hamburg
Beiträge: 392
Standard

Hi, kenne mich mit mootools überhaupt nicht aus. Aber eigentlich sollte die onComplete funktion an der stelle closure innerhalb der login funktion haben. Das bedeutet du braucht kein 'this' bzw darfst keins benutzen um auf variablen innerhalb der closure zuzugreifen.

Code:
this.login = function(){ 
        var ergebeniss = ""; 
       // soll url wirklich global sein?
       url = "register.php?action=checkusername&username="+this.username+"&password="+this.password; 
        var jSonRequest = new Json.Remote(url,{ 
            autoCancel: true, 
            onComplete : function(erg){ 
                    ergebniss = erg;
            } 
        }).send(); 
    }
ist nicht getestet.

edit: typo
cu
Darker
Darker ist offline   Mit Zitat antworten
Alt 13.06.2007, 16:44   #3 (permalink)
Neuer Benutzer
 
Registriert seit: 07.05.2007
Beiträge: 18
Standard

// soll url wirklich global sein?

Was meinst damit? Dachte ich definier so eine private var in einer Klasse? nicht? o_O hmm...


Das mit der "var ergebnis"-variante hab ich nu auch schon probiert, geht zwar, aber ich muss dauernd ne neue var erzeugen.

ich habs nun so gemacht, dass ich:

obj = this;
var jSonRequest = new Json.Remote(url,{
autoCancel: true,
onComplete : function(erg){
obj.ergebniss = erg;
}
}).send();
es so handle....geht...und ich kann auch auf das komplette objekt zugreifen. Falls daran was "unsicher" sein sollte....über tipps bin ich immer dankbar...bin noch ned so fit in JS


Trotzdem Danke dir Darker
.sophor ist offline   Mit Zitat antworten
Alt 13.06.2007, 19:42   #4 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Darker
 
Registriert seit: 10.04.2007
Ort: Hamburg
Beiträge: 392
Standard

Zitat:
Zitat von .sophor Beitrag anzeigen
// soll url wirklich global sein?

Was meinst damit? Dachte ich definier so eine private var in einer Klasse? nicht? o_O hmm...
Naja ka was mootools da noch macht, aber alles was kein var hat und vorher nicht definiert war landet im globalen bereicht, was auch immer die sich dabei gedacht haben, ist nun mal so.
Zitat:
Zitat von .sophor Beitrag anzeigen
Das mit der "var ergebnis"-variante hab ich nu auch schon probiert, geht zwar, aber ich muss dauernd ne neue var erzeugen.
verstehe ich nicht, warum musst du dauernd ne neue var erzeugen?

Zitat:
Zitat von .sophor Beitrag anzeigen
ich habs nun so gemacht, dass ich:

obj = this;
var jSonRequest = new Json.Remote(url,{
autoCancel: true,
onComplete : function(erg){
obj.ergebniss = erg;
}
}).send();
es so handle....geht...und ich kann auch auf das komplette objekt zugreifen. Falls daran was "unsicher" sein sollte....über tipps bin ich immer dankbar...bin noch ned so fit in JS
finde ich nicht so gut, wo zeigt 'this' hinn? obj ist wieder global. Geht es darum das du auserhalb des objektes auf das ergebniss zugreifen willst? Vieleicht liegt das auch an mootools das es für mich so komisch aussieht.

cu
Darker
Darker ist offline   Mit Zitat antworten
Alt 13.06.2007, 20:50   #5 (permalink)
Neuer Benutzer
 
Registriert seit: 07.05.2007
Beiträge: 18
Standard

Zitat:
Zitat von Darker Beitrag anzeigen
Naja ka was mootools da noch macht, aber alles was kein var hat und vorher nicht definiert war landet im globalen bereicht, was auch immer die sich dabei gedacht haben, ist nun mal so.
Also ist eine Variable in einer klasse, die ein var davorstehen hat eine private Variable?

Bin wie gesagt mit private, protected und public nocht ned so fit in JS. in Java && PHP && C# is es schöner gemacht.


Zitat:
Zitat von Darker Beitrag anzeigen
finde ich nicht so gut, wo zeigt 'this' hinn? obj ist wieder global. Geht es darum das du auserhalb des objektes auf das ergebniss zugreifen willst? Vieleicht liegt das auch an mootools das es für mich so komisch aussieht.
Also, wenn ich this in der Function hernehme, sagt er mir "is ned da", kla....das Ajaxobject hat dat ding ja auch ned. Also referenziere ich es auf eine andere variable. Ich könnte ja auch obj mit var, also "var obj = this" nehmen. werd ich morgen mal testen ob es den gewünschten effekt hat.

ich will einfach in der funktion "onComplete" mit KlassenMethoden arbeiten. Die loginfunction ist ja von mir. auch die klasse ist von mir. das einzige was nicht von mir ist, is das AjaxObjekt. Das is eben von mootools.net. Und die Doku is mal sowas von bescheiden.... -.-

Ich glaub ich lad mit das Paket mal unkomprimiert und schau mir den Quelltext an. Der wird mehr verraten als die ganze Doku.

LG


Marcel
.sophor ist offline   Mit Zitat antworten
Alt 14.06.2007, 00:46   #6 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Darker
 
Registriert seit: 10.04.2007
Ort: Hamburg
Beiträge: 392
Standard

Zitat:
Zitat von .sophor Beitrag anzeigen
Also ist eine Variable in einer klasse, die ein var davorstehen hat eine private Variable?

Bin wie gesagt mit private, protected und public nocht ned so fit in JS. in Java && PHP && C# is es schöner gemacht.
Naja das problem ist JS ist nicht wie die anderen oop sprachen, es gibt in dem sinne ja nicht mal klassen. Gibt auch keine private, protected und public variablen in dem sinne. Das problem ist einfach es gibt ein Globales object, das ist für alle Javascript objekte sichbar. Wenn du nun eine variable einfach benutzt also ohne sie vorher mit var zu deklarieren, dann nimmt der parser an du willst eine globale variable machen und steckt sie in das globale objekt. (implied global)

Wenn du fit in englisch bist, empfehle ich die videos von Douglas Crockford (yahoo).
Yahoo! UI Library: YUI Theater
Douglas Crockford — "The JavaScript Programming Language"

Es geht dort nicht um die YUI library von Yahoo sonder um JS selbst. Auch die anderen video serien sind sehr sehenswert. Viel spass beim gucken.

cu
Darker
Darker ist offline   Mit Zitat antworten
Alt 15.06.2007, 13:01   #7 (permalink)
Neuer Benutzer
 
Registriert seit: 07.05.2007
Beiträge: 18
Standard

hm....danke

Hab zwar schon öfter mit yui gearbeitet, wusste aber ned das die sowas haben xD



Nun, dabei bleibt aber immer noch die alte Frage offen!?!?
Wie stelle ich das mit mootools an? Kennt jemand eine Lösung? gibts überhaupt eine? Hab mir schon auf mootools.net die Doku durchgelesen. Mittlerweile kenn ich manche stellen schon auswendig. Aber es steht nirgends was über dieses Problem


LG

Marcel

Geändert von .sophor (15.06.2007 um 13:05 Uhr)
.sophor ist offline   Mit Zitat antworten
Antwort

Lesezeichen


Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche Rahmen-Klasse in Framework etc. b.asile Sonstige Probleme 2 07.02.2007 19:07
Gmail für die eigene Domain Patte Anwendungsbeispiele 2 07.12.2006 20:23
XSL-T --->(Klasse?) für JSP / PHP / Frameworks _level0 Sonstige Probleme 1 20.03.2006 21:07
Ähnliches wie Google Page Creator für eigene Seite? Patte Sonstige Probleme 30 04.03.2006 10:31


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.