[Flash] redirect dopo invio form mail

romeobull

Nuovo Utente
23 Nov 2010
2
0
0
Ciao a tutti.
Spero davvero qualcuno possa aiutarmi, ormai sono in disperazione inoltrata.

Ho un form contatti swf che con un motore php consente di inviare una mail al desinatario e una ricevuta al mittente, classico niente di nuovo.

Il form funziona e soprattutto quando si clicca sul tasto invia, a video compare il feedback testuale "mail inviata correttamente ecc".

Il feedback è a video. Io vorrei che dopo aver inviato la mail, anzichè stampare la scritta "mail inviata ecc" facesse un redirect alla scena successiva.

Vi posto l'action script.
Spero ci sia qualche anima pia capace di aggiustarmi la settimana.

Grazie mille.
Marcello

Ecco l'action script in questione:

Codice:
cancella.onRelease = function() {
    for (i=0; i<campi.length; i++) {
        eval(campi[i]).text = "";
    }
};
invio.onRelease = function() {
    dati = new LoadVars();
    campiVuoti = false;
    for (i=0; i<(campi.length-1); i++) {
        if (eval(campi[i]).text == "") {
            campiVuoti = true;
            break;
        }
        dati[campi[i]] = eval(campi[i]).text;
    }
    if (!campiVuoti) {
        dati.flashMAIL = true;
        dati.onLoad = function(ok) {
            if (ok) {
                if (this.ris == "ok") {
                    esito.text = "email inviata correttamente ";
                                       
                    for (i=0; i<(campi.length-1); i++) {
                        eval(campi[i]).text = "";
                        
                    }
                    if (this.ris == "ok") {
                        invio.onRelease = function() {
                            
}

                    }
                } else {
                    esito.text = "l'e-mail non è stata inviata";
                }
            } else {
                esito.text = "errore durante l'invio dei dati";
            }
        };
        dati.sendAndLoad("sendmail.php", dati, "POST");
    } else {
        delete dati;
        esito.text = "Tutti i campi sono obbligatori";
    }
};
cancella.onRollOver = function() {
    this.nextFrame();
};
cancella.onRollOut = cancella.onReleaseOutside=function () {
    this.prevFrame();
};
invio.onRollOver = function() {
    this.nextFrame();
};
invio.onRollOut = invio.onReleaseOutside=function () {
    this.prevFrame();
};
 
crei un funzione che ti porta alla scena successiva

tipo... nel fotogramma metti questo
Codice:
function scenasuccessiva(){
gotoAndStop("Scena 2", 1);
clearInterval(richiamo);
}

e poi la richiami in quel punto

cancella.onRelease = function() {
for (i=0; i<campi.length; i++) {
eval(campi).text = "";
}
};
invio.onRelease = function() {
dati = new LoadVars();
campiVuoti = false;
for (i=0; i<(campi.length-1); i++) {
if (eval(campi).text == "") {
campiVuoti = true;
break;
}
dati[campi] = eval(campi).text;
}
if (!campiVuoti) {
dati.flashMAIL = true;
dati.onLoad = function(ok) {
if (ok) {
if (this.ris == "ok") {
//esito.text = "email inviata correttamente ";
richiamo=setInterval(scenasuccessiva, 2000);


for (i=0; i<(campi.length-1); i++) {
eval(campi).text = "";

}
if (this.ris == "ok") {
invio.onRelease = function() {

}

}
} else {
esito.text = "l'e-mail non è stata inviata";
}
} else {
esito.text = "errore durante l'invio dei dati";
}
};
dati.sendAndLoad("sendmail.php", dati, "POST");
} else {
delete dati;
esito.text = "Tutti i campi sono obbligatori";
}
};
cancella.onRollOver = function() {
this.nextFrame();
};
cancella.onRollOut = cancella.onReleaseOutside=function () {
this.prevFrame();
};
invio.onRollOver = function() {
this.nextFrame();
};
invio.onRollOut = invio.onReleaseOutside=function () {
this.prevFrame();
};


aggiungi quella riga in rosso... dopo 2 secondi o anche immediatamente
come preferisci richiama la funzione nel fotogramma "scenasuccessiva"

vedi un po...
 
Ultima modifica:
tipo... nel fotogramma metti questo
Codice:
function scenasuccessiva(){
gotoAndStop("Scena 2", 1);
clearInterval(richiamo);
}

e poi la richiami in quel punto



aggiungi quella riga in rosso... dopo 2 secondi o anche immediatamente
come preferisci richiama la funzione nel fotogramma "scenasuccessiva"

vedi un po...

Non ho capito in che fotogramma devo inserire
Codice:
function scenasuccessiva(){
gotoAndStop("Scena 2", 1);
clearInterval(richiamo);
}
 
nello stesso fotogramma in cui si trova il form ovviamente

Il feedback è a video. Io vorrei che dopo aver inviato la mail, anzichè stampare la scritta "mail inviata ecc" facesse un redirect alla scena successiva.

tu hai parlato di "scene" quindi letteralmente si può intuire che il tuo filmato swf è strutturato in scene e quindi ti ho creato un funzione che subito dopo che ti arriva la conferma dell'invio dei dati dopo 2 secondi ti porta alla scena successiva.

Se invece il tuo swf non ha scene ed è costituito da fotogrammi allora lo script sarebbe il seguente

function scenasuccessiva(){
gotoAndStop(2); //il fotogr in cui vuoi andare dopo aver avuto la conferm
clearInterval(richiamo);
}

più chiaro di così
 
@giosuecentomani
Non ti accodare a discussioni aperte da altri usa la tua discussione e basta!

Leggi il regolamento generale del forum e quello della sezione dove scrivi
Grazie
 

Discussioni simili