sendAndLoad Problem

beassy

Grünschnabel
Hi,

bin wieder mal der Verzweifelung nahe...

Ich habe ein mail-formular geschrieben.
Die php wird per sendAndload hinzugeladen. Das geht auch.
Wenn die mail erfolgreich gesendent wurde erscheint eine Meldung.
Nun möchte ich aber das diese Meldung nach einer bestimmten Zeit
wieder ausgeblendet wird.
Habe verschiedenes ausprobiert auch mit setInterval.
Das "setInterval" ging auch alleine, als ich es aber das ins Script einbaute
gings nicht mehr. Beim Php habe ich ein sleep (10) eingebaut,
dummerweise wird das restliche Script 10sec später ausgeführt...
Ich weiss nicht mehr weiter...aber Ihr könnt mir bestimmt helfen


Vielen, vielen Danke im Vorraus
Gruss
Beassy

hier mal das AS

PHP:
on (press) {
    
SendObjekt = new LoadVars();
SendObjekt.nameein = name_text.text;
SendObjekt.betreffein = betreff_text.text;
SendObjekt.emailein = email_text.text;
SendObjekt.bodyein = body_text.text;
SendObjekt.sendAndLoad(_global.myURL+"mailflash.php", SendObjekt);
SendObjekt.onLoad = function() 
{
if (this.Message == "NLEER") {
ausgabe_text.text = "Ihr Name?";
}
if (this.Message == "BLEER") {
ausgabe_text.text = "Ihr Betreff?";
}
if (this.Message == "ELEER") {
ausgabe_text.text = "Ihre Email-Adresse?";
}
if (this.Message == "EFALSCH") {
ausgabe_text.text = "Email-Adresse fehlerhaft";
}
if (this.Message == "BOLEER") {
ausgabe_text.text = "Ihre Nachricht?";
}
if (this.Message == "EOK") {
name_text.text = SendObjekt.text1;
betreff_text.text = SendObjekt.text2;
email_text.text = SendObjekt.text3;
body_text.text = SendObjekt.text4;
ausgabe_text.text = SendObjekt.text5;
}
        
};
}

und das php

PHP:
<?php
$suchen = "\r"; 
$ersetzen = "\n"; 
$empfaenger="xxx@xxxx.de"; 
$name = $_POST['nameein'];
$betreff = $_POST['betreffein'];
$email = $_POST['emailein'];
$body= str_replace($suchen,$ersetzen,$_POST['bodyein']); 
if ($name==""){
echo "Message=NLEER";
}
else if ($betreff==""){
echo "Message=BLEER";
}
else if ($email==""){
echo "Message=ELEER";
}
else if (!(eregi ("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email))) 
{
echo "Message=EFALSCH";
}
else if ($body==""){
echo "Message=BOLEER";
}
else{
$nowDay=date("d.m.Y");
$Subject=$betreff;
$FormContent="
---------------------------------------------------------------------\n
Name: 
$name\n
E-mail: 
$email\n
Betreff: 
$betreff\n
Nachricht: 
$body\n
---------------------------------------------------------------------\n
";
mail("$empfaenger","$Subject (von $name)","$FormContent","From: $email");
$text="";
$textsend="Email erfolgreich gesendet";
$leer= "&text1=".$text;
$leer2= "&text2=".$text;
$leer3= "&text3=".$text;
$leer4= "&text4=".$text;
$send= "&text5=".$textsend;
echo "Message=EOK".$send.$leer.$leer2.$leer3.$leer4;
sleep(10);
$textsend="";
$send= "&text0=".$textsend;
echo "Message=EOK".$send.$leer.$leer2.$leer3.$leer4;
$FormContent_2="
Ich bedanke mich für Ihre Email.\n 
Mit freundlichem Gruß
xxxx\n               
http://www.xxxx.de\n 
----------------------------------------------------------------------\n
Ihre Nachricht vom $nowDay \n\n  
Betreff: 
$betreff\n
Nachricht: 
$body\n
----------------------------------------------------------------------\n
";
mail("$email", "Herzlichen Dank", "$FormContent_2", "From: $empfaenger");
}
?>
 
Hi,

diese Meldung erscheint in den Eingabefeldern des Formulars und soll von dort wieder verschwinden? Na ja, wie auch immer: setInterval sollte es eigentlich tun, wenn es auch brav wieder gelöscht wird:
PHP:
if (this.Message == "EOK") { 
    name_text.text = SendObjekt.text1; 
    betreff_text.text = SendObjekt.text2; 
    email_text.text = SendObjekt.text3; 
    body_text.text = SendObjekt.text4; 
    ausgabe_text.text = SendObjekt.text5; 
    _global.IV = setInterval(function() { clearMessage() }, 10000);
}
und im Formularobjekt (das den Button enthält):
PHP:
function clearMessage() {
    clearInterval(_global.IV);
    // hier die Nachricht löschen
}
mich wundert allerdings, dass Du das LoadVars-Objekt im onPress-Handler des Send-Buttons mit den Werten der Textfelder füllen kannst, ohne jeweils ein _parent vor die Textfelder zu setzen ...

Gruß

P.S. übrigens würde ich die Gültigkeit der Felder schon in Flash und nicht erst in PHP überprüfen (spart Traffic und geht m.E. fixer) - aber das mag Geschmackssache sein.
 
Hi Datic,
das klappt super, danke für deine Hilfe

>>mich wundert allerdings, dass Du das LoadVars-Objekt im onPress-Handler des Send-Buttons mit den Werten der Textfelder füllen kannst, ohne jeweils ein _parent vor die Textfelder zu setzen ... <<

Das liegt daran, weil die Textfelder auf selber "Ebene" liegen wie der Sende-Button und ich daher nicht "höher springen" muss. Es geht hervorragend.

Gruss
und Danke nochmals
Beassy
 
Zurück