variable von php zu swf

re_lex

Grünschnabel
hallo leute

ich habe ein kleines problemchen mit einem php file, welches eine variabel an ein swf zurücksenden soll.

eigentlich habe ich mir ein sozusagen komplet fertiges flashformular mit php file gezogen, worin man nur im php die email adresse anpassen muss.
download hier

ich habe das ganze für meine flash site adaptiert. leider stimmt der pfad nicht mehr so wie in dem "fertigformular", da ich mein swf-formular in ein anderes swf eingebettet bzw. geladen habe.

das senden des formulars funktioniert. leider funktioniert das rücksenden einer variable nicht.
das senden dieser variable vom php zum swf dient lediglich dazu, damit ich dem benutzer ein "okay" das senden hat funktioniert, zurückgeben kann bzw. eine "...wird gesendet - animation" entfernen kann oder was auch immer.

die variable bzw. der entsprechenden instanz-namen im swf heisst "signal". damit alles funktioniert musste ich inerhalb des swf schon einige pfadangaben anpassen und zwar von:

_root.signal
habe ich geändert zu
_root.platzhalter.signal

(da mein formular im movieclip "platzhalter" hineingeladen wird)

das hat auch funktioniert. nur weiss ich nicht was ich mit der pfadangabe im php falsch mache. so sieht der code im originalzustand aus:

$signal=1;
echo "signal=$signal";

in meiner php-unkenntnis habe ich schon verschiedene varianten ausprobiert, z.B.

$signal=1;
echo "_root.platzhalter.signal=$signal";

...aber noch nicht geschafft das es klapt. ich hoffe du kannst mir helfen wie ich das mit dem signal hinkriege.
 
Hi re_lex,
Du musst ja die Variable in Flash nicht in den movieclip legen, sondern kannst ja die variable auf _root abfragen.
Code:
onClipEvent (enterFrame) {
 if (_root.signal==2) {
  _visible = 1;
 } else {
  _visible = 0;
 }
}

In PHP kannst du ja dann einfach die Variable ins _root übergeben.
Code:
echo "signal=$signal";
 
danke für die hilfe. deine vorgeschlagene lösung ist also eigentlich 1:1 jene im "fertigformular" und php-file.

also hab ich mal einfach das gesamte fertigformular (bzw. alle frames) in mein swf im swf ge-copy/pastet um zu testen ob das geht.
das formular wird gesendet. und nachdem ich in diesem actionscript auf dem senden button den signal-pfad angepasst habe funktioniert auch "statusanzeige" und "sende-animation".
Code:
on (release) {
    if (_root.signal != 2 && MailFrom .indexOf("@") !=-1 && MailFrom .indexOf(".") !=-1 && Subject !="" && Body !="") {
        _root.signal=2;
        loadVariablesNum("flaform.php", 0, "POST");
    }
    if (Body == "") {
        mc.ausgabe = "Missing Comment !";
    }
    if (Subject == "") {
        mc.ausgabe = "Missing Subject !";
    }
    if ( MailFrom .indexOf("@") ==-1 ||  MailFrom .indexOf(".") ==-1) {
        mc.ausgabe = "Wrong E-mail";
    }
}

auch hier auf der statusanzeite musste ich die pfade für die textfelder anpassen damit diese dann "gecleart" werden nach dem senden:
Code:
onClipEvent (load) {
    k = 0;
    j = 40;
}
onClipEvent (enterFrame) {
    if (_root.signal==1) {
        ausgabe = "Okay";
        k++;
        if (k>=40) {
            ausgabe = "";
            _root.signal = 0;
            _root.platzhalter.firstname = "";
            _root.platzhalter.MailFrom = "";
            _root.platzhalter.Body = "";
            k = 0;
        }
    } else if (_root.signal==2) {
        ausgabe = "Send Data";
    }
}
und vermutlich hatte ich auch im php mit dieser autoresponder geschichte probleme. die hat von anfang an nicht funktioniert und hab diese darum ignoriert. jetzt habe ich den entprechenden code im php gelöscht.
und nun funktioniert alles so wie es soll. nochmal vielen dank für die hilfe.
 
@re_lex: Bitte halte dich in Zukunft an die Netiquette und achte auf den roten Text, der unter dem Eingabeformular beim Schreiben eines neuen Beitrages erscheint. Danke.
 
Zurück