[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();
};
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
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:

romeobull

Nuovo Utente
23 Nov 2010
2
0
0
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);
}
 

max_400

Utente Attivo
23 Gen 2009
770
0
16
caltanissetta
max400.forumfree.it
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ì
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.298
332
83
@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