{lang: 'de'}
Flashhilfe.de - Flash Community

SendAndLoad Result-Variable gibt undefined zurück [Flash 8]

 


AntwortenRegistrieren Seite1  

emjay_hh#1
Benutzerbild von emjay_hh
Beiträge: 4
Registriert: Dec 2010

27.12.2010, 17:23

Hallo,

ich habe ein Formular (formular.swf) mit Textfeldern und Flash-Komponenten (CheckBox, ComboBox). Klickt der User auf einen Senden-Button, werden die vom User eingegebenen Werte in Variablen geschrieben und mit sendAndLoad an ein php (sendmail.php) übergeben, das die Werte per Mail verschickt. Bei Erfolg, gibt das php &vStatus = ok zurück, sonst &vStatus = Fehler: [+Fehlermeldung]. Diese Variable wird von Flash übernommen und springt je nach Variableninhalt zu einem bestimmten Frame im Film.

Dies funktioniert auch wunderbar, solange ich das Formular als „Hauptfilm“ ausführe. Sobald ich das Formular aber in meinen eigentlichen Hauptfilm einbinde, gibt mir die übernehmende Variable vStatus undefined zurück.

Woran liegt das? Kann mir das einer erklären?

Hier die Scripts.

Hauptfilm:
ActionScript:
1loadMovieNum("gruppen/romoo/formular.swf", 89);


formular.swf:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Import benötigte Klassen
import mx.controls.*;

//[...]

//Pflichtfelder definieren
var arPflichtfeld:Array = new Array(txtThema,txtName,txtAdresse,txtPLZ,txtOrt,txtTelefon,txtMail,txtTeilnehmer);
dtxtMeldung.autoSize = true;

var vStatus:String

// Button "Senden" Listener
var BtnListener:Object = new Object();
BtnListener.click = function(evt:Object) {
 
     var vFehler:Number = 0;
     if(txtMail.text.indexOf("@") == -1 || txtMail.text.indexOf(".") == -1)
        {txtMail.text="";}
     for(i:Number = 0; i < arPflichtfeld.length; i++) {
        if (arPflichtfeld[i].length < 1) {
           arPflichtfeld[i].borderColor=0xff0000;
           vFehler++;
        } else {
           arPflichtfeld[i].borderColor=0x000000;
        }
     }
     
  if(vFehler > 0) {
     dtxtMeldung.text = "Bitte Felder korrekt ausfüllen!";
     } else {
     var result_lv:LoadVars = new LoadVars();
     result_lv.onLoad = function(erfolg:Boolean) {
        if (erfolg) {
           trace(result_lv);  // <-- liefert 'undefined'
         vStatus = result_lv.vStatus;
           trace(vStatus);  // <-- liefert 'undefined'
         if (vStatus == 'ok') {
              gotoAndPlay("checkout");
           } else {
              gotoAndPlay("fehler");
           }
        } else {
           vStatus = 'Fehler in der Kommunikation flash - php!';
           gotoAndPlay("fehler");
        }
     };
     var send_lv:LoadVars = new LoadVars();
     send_lv.vTyp = cbTyp.value;
     send_lv.vThema = txtThema.text;
     send_lv.vName = txtName.text;
     send_lv.vAdresse = txtAdresse.text;
     send_lv.vPLZ = txtPLZ.text;
     send_lv.vOrt = txtOrt.text;
     send_lv.vTelefon = txtTelefon.text;
     send_lv.vMail = txtMail.text;
     send_lv.vTeilnehmer = txtTeilnehmer.text;
     send_lv.vGelesen = checkGelesen.value;
     send_lv.sendAndLoad("gruppen/romoo/SendMail.php", result_lv, "POST");
  }};
bnSenden.addEventListener("click", BtnListener);


sendmail.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
   
//Klasse einbinden
   
require("Scripts/phpmailer/class.phpmailer.php");

   
//Instanz von PHPMailer bilden
   
$mail = new PHPMailer();

    [&
hellip;]   
 
   
//E-Mail senden und &uuml;berpr&uuml;fen, ob sie versandt wurde
   
if(!$mail->Send())
    {
       
//$mail->Send() liefert FALSE zur&uuml;ck: Es ist ein Fehler aufgetreten
       
echo "&vStatus=Fehler: " $mail->ErrorInfo;
    }
    else
    {
       
//$mail->Send() liefert TRUE zur&uuml;ck: Die E-Mail ist unterwegs
       
echo "&vStatus=ok";
    }
?>


Vielen Dank für eure Hilfe.
emjay_hh
RustyCake#2
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

27.12.2010, 17:34