Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-10-2003, 00:59   #1 (permalink)
aka The Addict
 
Benutzerbild von Martys
 
Registriert seit: Dec 2002
Ort: Bochum
Beiträge: 150
Question Kombinierte if-Abfrage ???

Hallo zu später Stunde,

Habe ein Formular welches abgefragt werden soll. Hatte anfangs nur einen MC als Fehlermeldung für drei Felder. Will für jedes der drei Felder eine Fehlermeldung haben.

Hier das Script auf dem Sende-Button:

PHP-Code:
on (release) {
        
mc_n = new Color(mc_name);
        
mc_e = new Color(mc_email);
        
mc_t = new Color(mc_text);
        if (
_root.streifen.textfelder.email.indexOf("@") == -|| _root.streifen.textfelder.email.length<6){
                
this.mc_e.setRGB(0xff0000);
        }
        else if (
_root.streifen.textfelder.name.length<1){
                
this.mc_n.setRGB(0xff0000);
        }
        else if (
_root.streifen.textfelder.mitteilung.length<1){
                
this.mc_t.setRGB(0xff0000);
        }
        else {
                
_root.name=textfelder.name;
                
_root.email=textfelder.email;
                
_root.mitteilung=textfelder.mitteilung;
                
_root.loadVariables("mailer.php""GET");
                
gotoAndStop(4);
                
updateAfterEvent();
        }

Dieses funktioniert beim Aufruf allerdings nur bei einem Feld, bei erneutem Aufruf dann auch beim Zweiten und beim dritten Aufruf auch beim Dritten (nur bei Falschangaben natürlich).

Wie schaffe ich es die if-Abfragen zu kombinieren?

Muss ich dafür eine for-while-Schleife verwenden, dies habe ich nämlich noch nie gemacht.

Danke für Tipps und Hilfe.

Martys
Martys ist offline   Mit Zitat antworten
Alt 09-10-2003, 01:25   #2 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
die else weglassen
else if wird nur ausgeführt wenn der vorhergehende rumpf kein true zurückliefert

also einfach 3 if abfrage nacheinander respektive die abfragen per or (also ||) in einer if abfrage kombinieren oder der übersicht wegen die rückgabewerte der abfrage(true oder false) in je einer variablen speichern und diese variablen dann verknüpfen:
ich sehe gerade du färbst je fehler einen anderen text ein, also nimm die möglichket mit den 3 getrennten if-abfragen

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 09-10-2003, 12:08   #3 (permalink)
aka The Addict
 
Benutzerbild von Martys
 
Registriert seit: Dec 2002
Ort: Bochum
Beiträge: 150
Danke für den Tipp, war hilfreich.

Nun habe ich ein neues Problem.

Die Felder werden abgefragt und bei falschen Eingaben auch rot eingefärbt. Wenn ich nun aber eine falsche Eingabe korrigiere und in einem Feld ist immer noch etwas falsches, soll das korrigierte Feld wieder die Ausgangsfarbe (hier schwarz) bekommen.
Dies funktioniert auch bei zwei Feldern, nur bei dem eMail-Feld nicht.

Hier der Code:

PHP-Code:
on (release) {
        
mc_n = new Color(mc_name);
        
mc_e = new Color(mc_email);
        
mc_t = new Color(mc_text);
        if (
_root.streifen.textfelder.email.indexOf("@") == -|| _root.streifen.textfelder.email.length<|| _root.streifen.textfelder.name.length<|| _root.streifen.textfelder.mitteilung.length<1){
                if (
_root.streifen.textfelder.email.indexOf("@") == -|| _root.streifen.textfelder.email.length<6){
                
this.mc_e.setRGB(0xff0000);
                }
                if (
_root.streifen.textfelder.name.length<1){
                
this.mc_n.setRGB(0xff0000);
                }
                if (
_root.streifen.textfelder.mitteilung.length<1){
                
this.mc_t.setRGB(0xff0000);
                }
                if (
_root.streifen.textfelder.email.indexOf("@") == && _root.streifen.textfelder.email.length>6){
                
this.mc_e.setRGB(0x000000);
                }
                if (
_root.streifen.textfelder.name.length>1){
                
this.mc_n.setRGB(0x000000);
                }
                if (
_root.streifen.textfelder.mitteilung.length>1){
                
this.mc_t.setRGB(0x000000);
                }
                }
                else {
                
_root.name=textfelder.name;
                
_root.email=textfelder.email;
                
_root.mitteilung=textfelder.mitteilung;
                
_root.loadVariables("mailer.php""GET");
                
gotoAndStop(4);
                
this.textfelder.name "Ihr Name";
                
this.textfelder.email "Ihre eMail-Adresse";
                
this.textfelder.mitteilung "Ihre Mitteilung...";
                
updateAfterEvent();
      }

Finde den Fehler einfach nicht.

Danke

Martys

Geändert von Martys (09-10-2003 um 12:14 Uhr)
Martys ist offline   Mit Zitat antworten
Alt 09-10-2003, 12:26   #4 (permalink)
Humane Resource
 
Benutzerbild von Salix
 
Registriert seit: Jun 2003
Ort: Karben
Beiträge: 95
Hallo Martys

Ich bin mir nicht ganz sicher aber Vergleichsoperatoren sollten immer aus 2 Zeichen bestehn.....

ActionScript:
  1. if (_root.streifen.textfelder.email.indexOf("@") == -1 || _root.streifen.textfelder.email.length<=6){
  2.                 this.mc_e.setRGB(0xff0000);
  3.  
  4.  
  5. oder
  6.  
  7. if (_root.streifen.textfelder.email.indexOf("@") == -1 || _root.streifen.textfelder.email.length!>5){
  8.                 this.mc_e.setRGB(0xff0000);
Salix ist offline   Mit Zitat antworten
Alt 09-10-2003, 12:43   #5 (permalink)
aka The Addict
 
Benutzerbild von Martys
 
Registriert seit: Dec 2002
Ort: Bochum
Beiträge: 150
Sollten ja, müssen aber nicht (meines Wissens).

Bei den beiden funktionierenden Feldern verwende ich ja auch nur < oder >

Hm, ich komme nicht drauf :-(

Martys
Martys ist offline   Mit Zitat antworten
Alt 09-10-2003, 12:46   #6 (permalink)
Humane Resource
 
Benutzerbild von Salix
 
Registriert seit: Jun 2003
Ort: Karben
Beiträge: 95
bei den funktionierenden haste auch ne oder Verknüpfung da reicht es wenn eine der Bedingungen wahr wird.
Salix ist offline   Mit Zitat antworten
Alt 09-10-2003, 12:50   #7 (permalink)
aka The Addict
 
Benutzerbild von Martys
 
Registriert seit: Dec 2002
Ort: Bochum
Beiträge: 150
Hab es hinbekommen.

Meine if-Abfrage in der if-Abfrage war murks.

Hier nun richtig:

PHP-Code:
if (_root.streifen.textfelder.email.indexOf("@") == -|| _root.streifen.textfelder.email.length<6){
                
this.mc_e.setRGB(0xff0000);
                }
                else {
                    
this.mc_e.setRGB(0x000000);
                }
                if (
_root.streifen.textfelder.name.length<1){
                
this.mc_n.setRGB(0xff0000);
                }
                else {
                    
this.mc_n.setRGB(0x000000);
                }
                if (
_root.streifen.textfelder.mitteilung.length<1){
                
this.mc_t.setRGB(0xff0000);
                }
                else {
                    
this.mc_t.setRGB(0x000000);
                } 
So long

Martys
Martys ist offline   Mit Zitat antworten
Alt 09-10-2003, 12:54   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
@salix
ne

">" usw sind korrekte vergleichsoperatoren
dürfen auch einzeln stehen.

sieht nen bisschen kompliziert aus ich würds so machen
da kann von der logik auch nichts mehr schief gehen:


ActionScript:
  1. on (release) {
  2.         mc_n = new Color(mc_name);
  3.         mc_e = new Color(mc_email);
  4.         mc_t = new Color(mc_text);
  5. //boolsche werte zwischen speichern
  6. abfrEMAIL=_root.streifen.textfelder.email.indexOf("@") == -1 || _root.streifen.textfelder.email.length<6
  7. abfrNAME=_root.streifen.textfelder.name.length<1
  8. abfrMSG=_root.streifen.textfelder.mitteilung.length<1
  9.  
  10. //fehler lokalisieren
  11. if(abfrEMAIL) this.mc_e.setRGB(0xff0000);
  12. if(abfrNAME) this.mc_n.setRGB(0xff0000);
  13. if(abfrMSG) this.mc_t.setRGB(0xff0000);
  14. //falls keine fehler
  15. if(!abfrEMAIL && !abfrNAME && !abfrMSG){
  16.                 _root.name=textfelder.name;
  17.                 _root.email=textfelder.email;
  18.                 _root.mitteilung=textfelder.mitteilung;
  19.                 _root.loadVariables("mailer.php", "GET");
  20.                 gotoAndStop(4);
  21. //was soll das? nen quasi reset für nächste eingabe?
  22. //denke das ist nicht nötig, ne meldung mit
  23. //erfolgreich gesendet sollte reichen
  24.                 this.textfelder.name = "Ihr Name";
  25.                 this.textfelder.email = "Ihre eMail-Adresse";
  26.                 this.textfelder.mitteilung = "Ihre Mitteilung...";
  27. }

deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 09-10-2003, 13:00   #9 (permalink)
Humane Resource
 
Benutzerbild von Salix
 
Registriert seit: Jun 2003
Ort: Karben
Beiträge: 95
@Deluxe

Danke für den Hinweis.... man lernt nicht aus
Salix ist offline   Mit Zitat antworten
Alt 09-10-2003, 13:01   #10 (permalink)
aka The Addict
 
Benutzerbild von Martys
 
Registriert seit: Dec 2002
Ort: Bochum
Beiträge: 150
Zitat:
Geschrieben von Deluxe
[B
ActionScript:
  1. //was soll das? nen quasi reset für nächste eingabe?
  2. //denke das ist nicht nötig, ne meldung mit
  3. //erfolgreich gesendet sollte reichen
  4.                 this.textfelder.name = "Ihr Name";
  5.                 this.textfelder.email = "Ihre eMail-Adresse";
  6.                 this.textfelder.mitteilung = "Ihre Mitteilung...";
  7. }

deluxe [/B]
da hast Du allerdings recht.

Martys
Martys ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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 sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele