Hallo,
mit folgender Funktion parse ich eine XML problemlos:
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:
Da erhalte ich aber eine Fehlermeldung:
Weiß da jemand Rat?
Kerstin
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);
}
}
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!");
}
}
}
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.TypeError: Error #1006: value ist keine Funktion.
at benutzerdaten/onSpeichern()
Weiß da jemand Rat?
Kerstin