Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Fehler bei Zugriff auf XML-Objekt“

Kerstin77

Flashfan

Hallo,

mit folgender Funktion parse ich eine XML problemlos:

PHP:
private function parsexml_userdaten(evt:Event):void {
    var xmlload:URLLoader = URLLoader(evt.target);
    userdaten_xml = new XML(xmlload.data);
    if (userdaten_xml == "noconnection") {
        alert("Keine Verbindung zur Datenbank - bitte versuchen Sie es später noch einmal.");
    } else if (userdaten_xml == "incorrectid") {
        alert("Fehler: keine gültige Benutzer-ID");
    } else {
        for (var i:uint = 0; i < userdaten_xml.ds.length(); i++) {
            ypos = (i+1) * zeilenhoehe;
            var edit:Boolean;
            (userdaten_xml.ds[i].edit == "true") ? edit = true : edit = false;
            create_datensatz(userdaten_xml.ds[i].bezeichnung, userdaten_xml.ds[i].inhalt, ypos, edit);
        }
        ypos += zeilenhoehe;
        speichern_btn.x = comp_width;
        speichern_btn.y = ypos;
        speichern_btn.setLabel("Speichern");
        addChild(speichern_btn);
    }
}
Jetzt soll der User die Möglichkeit haben, seine Kontaktdaten zu ändern. Die Daten sollen bei Klick auf speichern an ein PHP-Skript gesendet werden, welches dann die Änderung in der Datenbank vornimmt. Nun möchte ich aber vorher noch eine Überprüfung einfügen, ob denn auch tatsächlich Daten geändert wurden, andernfalls brauch nichts gesendet zu werden:

PHP:
private function onSpeichern(evt:MouseEvent):void {
    if ((TextInput(getChildAt(input_arr[0])).text == "") && (TextInput(getChildAt(input_arr[1])).text == "") && (TextInput(getChildAt(input_arr[2])).text == "")) {
        alert("Bitte geben Sie mindestens eine Kontaktmöglichkeit an!");
    } else {
        // überprüfen, ob Daten geändert wurden, andernfalls braucht nicht gesendet zu werden
        var update:Boolean = false;
        for (var i:uint = 0; i < input_arr.length(); i++) {
            if (TextInput(getChildAt(input_arr[i])).text != userdaten_xml.ds[i].inhalt) {
                update = true;
            }
        }
        if (update) {
            // [Daten an PHP senden]
        } else {
            alert("Sie haben keine Änderung vorgenommen!");
        }
    }
}
Da erhalte ich aber eine Fehlermeldung:

TypeError: Error #1006: value ist keine Funktion.
at benutzerdaten/onSpeichern()
Warum habe ich in der Funktion onSpeichern keinen Zugriff mehr auf das XML-Objekt? Nehme ich die for-Schleife raus, kommt keine Fehlermeldung. Nur dann kann ich auch nicht überprüfen, ob Daten geändert wurden.

Weiß da jemand Rat?

Kerstin
 

dl110

"weniger ist mehr"

AW: Fehler bei Zugriff auf XML-Objekt

Zitat:
TypeError: Error #1006: value ist keine Funktion.
at benutzerdaten/onSpeichern()

ich seh den fehler jetzt auf die schnelle auch nicht.
bin selber grad dabei mich mit XML und flex auseinanderzusetzen.
die fehlermeldung allerdings kenne ich.

flash erwartet einen wert (value) und du gibst eine funktion.
der fehler muss also an einer stelle vorkommen wo "()" zu viel ist.

ich seh in allerdings auch nicht.... :uhm:...
hm...

Code:
[COLOR=#000000][COLOR=#007700]for (var [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]uint [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]i [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]input_arr[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]length[/COLOR][COLOR=#007700](); [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]++) {
            if ([/COLOR][COLOR=#0000BB]TextInput[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]getChildAt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]input_arr[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]])).[/COLOR][COLOR=#0000BB]text [/COLOR][COLOR=#007700]!= [/COLOR][COLOR=#0000BB]userdaten_xml[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ds[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]inhalt[/COLOR][COLOR=#007700]) {
                [/COLOR][COLOR=#0000BB]update [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]true[/COLOR][COLOR=#007700];[/COLOR][/COLOR]

muss das vllt so aussehen...?

Code:
[COLOR=#000000][COLOR=#007700]for (var [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000BB]uint [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]i [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]input_arr[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]length[/COLOR][COLOR=#007700](); [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]++) {
            if ([/COLOR][COLOR=#0000BB]TextInput[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]getChildAt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]input_arr[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]]).[/COLOR][COLOR=#0000BB]text [/COLOR][COLOR=#007700]!= [/COLOR][COLOR=#0000BB]userdaten_xml[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]ds[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]inhalt[/COLOR][COLOR=#007700]) {
                [/COLOR][COLOR=#0000BB]update [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]true[/COLOR][COLOR=#007700];[/COLOR][/COLOR]
 

Kerstin77

Flashfan

AW: Fehler bei Zugriff auf XML-Objekt

muss das vllt so aussehen...?

Code:
[COLOR=#000000][COLOR=#007700]for (var [/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]:[/COLOR][COLOR=#0000bb]uint [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000bb]i [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000bb]input_arr[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]length[/COLOR][COLOR=#007700](); [/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]++) {
            if ([/COLOR][COLOR=#0000bb]TextInput[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]getChildAt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]input_arr[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]]).[/COLOR][COLOR=#0000bb]text [/COLOR][COLOR=#007700]!= [/COLOR][COLOR=#0000bb]userdaten_xml[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]ds[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]i[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]inhalt[/COLOR][COLOR=#007700]) {
                [/COLOR][COLOR=#0000bb]update [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]true[/COLOR][COLOR=#007700];[/COLOR][/COLOR]

Danke für die Antwort, aber das kann nicht sein. Das getChildAt(input_arr) liefert das Objekt TextInput. Durch die Typumwandlung sage ich Flash, daß es sich bei dem DisplayObjekt um ein TextInput handelt. Ansonsten kann ich die Eigenschaft .text nicht auslesen.

Kerstin


EDIT: übrigens liefert trace(userdaten_xml) den gleichen Fehler...
 
Zuletzt bearbeitet:

dl110

"weniger ist mehr"

AW: Fehler bei Zugriff auf XML-Objekt

@kerstin77:
jetzt wo ich gerade jemanden hab, der sich auch mit XML objekten rumschlägt...wie greifst du auf die dateien zu? du benutzt nicht zufällig auch die klassen von flare... ??
 

dl110

"weniger ist mehr"

AW: Fehler bei Zugriff auf XML-Objekt

@kerstin77:
ach so...
ja egal...mein problem hat sich grad eh in luft aufgelöst... :D
trotzdem danke!
 

Kerstin77

Flashfan

AW: Fehler bei Zugriff auf XML-Objekt

Hast Du's gut - meins nicht :(

Keine eine Idee???


EDIT: Fehler gefunden :)
PHP:
for (var i:uint = 0; i < input_arr.length; i++) {
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.158
Beiträge
2.581.880
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben