Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    aggiungere checkbox privacy

    Salve a tutti,
    Avrei bisogno di un aiuto per aggiungere 1 check box per la Privacy ad un form (AS2 + php) in flash.
    Io l’avrei pensato così:

    Se l’utente clicca su INVIA FORM e il checbox privacy non è ceccato, non parte la mail ed appare l’avviso: - Errore: Riempite i campi richiesti -
    Il clipmovie -Errore: Riempite i campi richiesti - è già presente nel form.fla (istanziato come: errore-invio) e viene richiamato dall’action script se non si compila il campo: messaggio. Vorrei quindi sfruttare per la checkbox lo stesso clip usato per il campo messaggio. Posso dirvi che il codice e il form non è associato al pulsante INVIO ed è in un unico frame e che è modularizzato a funzioni, in modo da poterle riutilizzare singolarmente.

    detto questo, il massimo che ho fatto è:
    Ho trascinato dalla finestra componenti un check box, l’ho chiamato checkboxprivacy e nei parametri del pannello proprietà ho detto selected = true

    Ho impostato poi questo script da inserire nell’action ma mi fermo qui perché ovvio è incompleto

    if (checkboxprivacy.value <> false){
    trace("se trovi la spunta nel checkbox manda la mail");
    }else{
    trace("se non trovi la spunta nel checkbox = errore_invio ")
    };

    ora vi allego lo script originale del form dove ho evidenziato in grassetto la funzione che mi interessa richiamare:

    // porto a zero la visibilità degli avvisi
    errore_invio._alpha = 0;
    errore_server._alpha = 0;
    errore_mail._alpha = 0;
    notifica_inviato._alpha = 0;
    // creo una funzione per il fadeIn/fadeOut degli avvisi
    MovieClip.prototype.fadeAlpha = function(to:Number) {
    var t:Object = new mx.transitions.Tween(this, "_alpha", mx.transitions.easing.None.easeNone, this._alpha, to, 1, true);
    t.path = this;
    t.onMotionFinished = function() {
    this.path.onFadeDone();
    };
    };
    // creo una funzione che verifica che il campo richiamato sia stato riempito e non contenga spazi vuoti
    var validate = function (mail_field:String):Boolean {
    var temp = this[mail_field].text.split(" ").join("");
    var r:Boolean = (temp.length<=0) ? false : true;
    return r;
    };
    // creo la funzione di verifica per il campo mail
    var checkMail:Function = function (target:MovieClip, nameField:String):Boolean {
    var temp:String = target[nameField].text;
    temp = temp.split(" ").join("");
    if (temp.length>0) {
    if (temp.lastIndexOf("@")>-1) {
    var temp2 = temp.split("@");
    if (temp2[1].length>5) {
    var temp3 = temp2[1].split(".");
    if (temp3[0].length>2 && temp3[1].length>1) {
    return (true);
    }
    return (false);
    }
    return (false);
    }
    return (false);
    }
    return (false);
    };
    // creo una funzione che viene richiamata al tentativo di invio
    var alert_report:Function = function (c:Number) {
    switch (c) {
    //
    // case 0 -> il primo caso viene richiamato se l'invio è avvenuto correttamente
    case 0 :
    notifica_inviato.onFadeDone = function() {
    this.onFadeDone = undefined;
    var intv = setInterval(function () {
    notifica_inviato.fadeAlpha(0);
    clearInterval(intv);
    }, 1000);
    };
    notifica_inviato.fadeAlpha(100);
    break;
    //
    // case 1 -> il secondo caso viene richiamato se i campi obbligatori non sono stati compilati
    case 1 :
    errore_invio.onFadeDone = function() {
    this.onFadeDone = undefined;
    var intv = setInterval(function () {
    errore_invio.fadeAlpha(0);
    clearInterval(intv);
    }, 1000);
    };
    errore_invio.fadeAlpha(100);
    break;

    //
    // case 2 -> il terzo caso viene richiamato se il server non risponde o se la mail non viene inviata correttamente
    case 2 :
    errore_server.onFadeDone = function() {
    this.onFadeDone = undefined;
    var intv = setInterval(function () {
    errore_server.fadeAlpha(0);
    clearInterval(intv);
    }, 1000);
    };
    errore_server.fadeAlpha(100);
    break;
    case 3 :
    errore_mail.onFadeDone = function() {
    this.onFadeDone = undefined;
    var intv = setInterval(function () {
    errore_mail.fadeAlpha(0);
    clearInterval(intv);
    }, 1000);
    };
    errore_mail.fadeAlpha(100);
    break;
    }
    };
    // creo un array che mi contenga tutti i nomi dei campi di testo che intendo inviare via mail
    var campi:Array = new Array("nome", "ditta", "ruolo", "mail", "tel", "messaggio");
    // e un altro array che contiene i nomi dei campi obbligatori
    var campiObbligatori:Array = new Array("nome", "mail", "messaggio");
    // entrambi gli array appena creati devono essere riproposti in php secondo le istruzioni del file PHP
    //
    // restringo l'immissione di caratteri nel campo mail a quelli necessari
    this["mail"].restrict = "^ ";
    // attivo il TAB per i campi
    for (var i = 0; i<campi.length; i++) {
    var l:Number = i+1;
    this[campi[i]].tabIndex = l;
    }
    // attivo l'invio della mail sul pulsante "invia_form"
    invia_form.onRelease = function() {
    // creo il LoadVars per la comunicazione con il file PHP
    var lv_sendMail:LoadVars = new LoadVars();
    // avvio un ciclo che mi verifica se i campi obbligatori sono riempiti
    // in caso positivo invia i dati al file PHP
    // in caso negativo attiva l'alert_report -> case 1
    for (var m = 0; m<campi.length; m++) {
    if (campiObbligatori.toString().indexOf(campi[m])>=0) {
    if (validate(campi[m])) {
    if (campi[m] != "mail") {
    lv_sendMail[campi[m]] = this._parent[campi[m]].text;
    } else {
    if (checkMail(this._parent, campi[m])) {
    lv_sendMail[campi[m]] = this._parent[campi[m]].text;
    } else {
    alert_report(3);
    break;
    }
    }
    } else {
    alert_report(1);
    break;
    }
    } else {
    lv_sendMail[campi[m]] = this._parent[campi[m]].text;
    }
    // alla fine delle verifiche, se è tutto apposto, invio i dati
    if (m>=campi.length-1) {
    lv_sendMail.sendAndLoad("sendmail.php", lv_sendMail, "POST");
    }
    }
    // compilo l'evento onLoad della classe LoadVars che mi verifica se l'invio è andato a buon fine o meno
    // nel caso sia stata inviata attiva l'alert_report -> case 0
    // altrimenti attiva l'alert_report -> case 2 (errore del server)
    lv_sendMail.onLoad = function(ok) {
    if (ok) {
    if (this.report == "OK") {
    alert_report(0);
    reset_form.onRelease();
    } else {
    alert_report(2);
    }
    } else {
    alert_report(2);
    }


    };
    };
    // il tasto "reset_form" si occupa di svuotare i campi del form
    reset_form.onRelease = function() {
    for (var r = 0; r<campi.length; r++) {
    this._parent[campi[r]].text = "";
    }
    };

    ************************************************** **************
    Se potete.. Grazie per l’aiuto..
    Daniela
    Una settimana un giorno, solamente un ora a volte vale una vita intera, il tempo passa in fretta e ti ruba quello che hai...

  2. #2

    (f8)aggiungere checkbox privacy

    up
    Una settimana un giorno, solamente un ora a volte vale una vita intera, il tempo passa in fretta e ti ruba quello che hai...

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    - crei un nuovo box come quelli che ci sono per gli errori e la notifica di invio e gli assegni il nome "errore_privacy"
    - inserisci un checkbox nello stage e gli dai come nome di istanza "checkbox"
    - modifichi il codice aggiungendo un if di verifica del checkbox sul pulsante di invio
    - aggiungi un "case 4" nella casistica di eventi della funzione "alert_report"

    il codice modificato secondo le indicazioni:
    Codice PHP:
    message_duration 2000;
    errore_invio._alpha 0;
    errore_server._alpha 0;
    errore_mail._alpha 0;
    errore_privacy._alpha 0;
    notifica_inviato._alpha 0;
    MovieClip.prototype.fadeAlpha = function(to:Number) {
        var 
    t:Object = new mx.transitions.Tween(this"_alpha"mx.transitions.easing.None.easeNonethis._alphato1true);
        
    t.path this;
        
    t.onMotionFinished = function() {
            
    this.path.onFadeDone();
        };
    };
    var 
    validate = function (mail_field:String):Boolean {
        var 
    temp this[mail_field].text.split(" ").join("");
        var 
    r:Boolean = (temp.length<=0) ? false true;
        return 
    r;
    };
    var 
    checkMail:Function = function (target:MovieClipnameField:String):Boolean {
        var 
    temp:String target[nameField].text;
        
    temp temp.split(" ").join("");
        if (
    temp.length>0) {
            if (
    temp.lastIndexOf("@")>-1) {
                var 
    temp2 temp.split("@");
                if (
    temp2[1].length>5) {
                    var 
    temp3 temp2[1].split(".");
                    if (
    temp3[0].length>&& temp3[1].length>1) {
                        return (
    true);
                    }
                    return (
    false);
                }
                return (
    false);
            }
            return (
    false);
        }
        return (
    false);
    };
    var 
    alert_report:Function = function (c:Number) {
        switch (
    c) {
            case 
    :
                
    notifica_inviato.onFadeDone = function() {
                    
    this.onFadeDone undefined;
                    var 
    intv setInterval(function () {
                        
    notifica_inviato.fadeAlpha(0);
                        
    clearInterval(intv);
                    }, 
    message_duration);
                };
                
    notifica_inviato.fadeAlpha(100);
                break;
            case 
    :
                
    errore_invio.onFadeDone = function() {
                    
    this.onFadeDone undefined;
                    var 
    intv setInterval(function () {
                        
    errore_invio.fadeAlpha(0);
                        
    clearInterval(intv);
                    }, 
    message_duration);
                };
                
    errore_invio.fadeAlpha(100);
                break;
            case 
    :
                
    errore_server.onFadeDone = function() {
                    
    this.onFadeDone undefined;
                    var 
    intv setInterval(function () {
                        
    errore_server.fadeAlpha(0);
                        
    clearInterval(intv);
                    }, 
    message_duration);
                };
                
    errore_server.fadeAlpha(100);
                break;
            case 
    :
                
    errore_mail.onFadeDone = function() {
                    
    this.onFadeDone undefined;
                    var 
    intv setInterval(function () {
                        
    errore_mail.fadeAlpha(0);
                        
    clearInterval(intv);
                    }, 
    message_duration);
                };
                
    errore_mail.fadeAlpha(100);
                break;
            case 
    :
                
    errore_privacy.onFadeDone = function() {
                    
    this.onFadeDone undefined;
                    var 
    intv setInterval(function () {
                        
    errore_privacy.fadeAlpha(0);
                        
    clearInterval(intv);
                    }, 
    message_duration);
                };
                
    errore_privacy.fadeAlpha(100);
                break;
        }
    };
    var 
    campi:Array = new Array("nome""ditta""ruolo""mail""tel""messaggio");
    var 
    campiObbligatori:Array = new Array("nome""mail""messaggio");
    this["mail"].restrict "^ ";
    for (var 
    0i<campi.lengthi++) {
        var 
    l:Number i+1;
        
    this[campi[i]].tabIndex l;
    }
    invia_form.onRelease = function() {
        if(!(
    checkbox.selected)){
            
    alert_report(4);
        } else {
            var 
    lv_sendMail:LoadVars = new LoadVars();
            for (var 
    0m<campi.lengthm++) {
                if (
    campiObbligatori.toString().indexOf(campi[m])>=0) {
                    if (
    validate(campi[m])) {
                        if (
    campi[m] != "mail") {
                            
    lv_sendMail[campi[m]] = this._parent[campi[m]].text;
                        } else {
                            if (
    checkMail(this._parentcampi[m])) {
                                
    lv_sendMail[campi[m]] = this._parent[campi[m]].text;
                            } else {
                                
    alert_report(3);
                                break;
                            }
                        }
                    } else {
                        
    alert_report(1);
                        break;
                    }
                } else {
                    
    lv_sendMail[campi[m]] = this._parent[campi[m]].text;
                }
                if (
    m>=campi.length-1) {
                    
    lv_sendMail.sendAndLoad("sendmail.php"lv_sendMail"POST");
                }
            }
            
    lv_sendMail.onLoad = function(ok) {
                if (
    ok) {
                    if (
    this.report == "OK") {
                        
    alert_report(0);
                        
    reset_form.onRelease();
                    } else {
                        
    alert_report(2);
                    }
                } else {
                    
    alert_report(2);
                }
            };
        }
    };
    reset_form.onRelease = function() {
        for (var 
    0r<campi.lengthr++) {
            
    this._parent[campi[r]].text "";
        }
    }; 

  4. #4
    Un opera d'arte.. e non per merito mio.

    Parecchio parecchio soddisfacente!
    Per buona volontà ho stampato i due action script e li ho messi a confronto per guardare le differenze..

    Un ennesimo ringraziamento per le volte che sei stato tanto d'aiuto.

    Devo farti solo notare una cosa del form, che se non metti la chiocciola o il punto it com ecc.. nel campo mail quando clicchi "invia" non fa partire la mail ma non ti da nemmeno errore e magari uno che non si intende di invio form mail o che non è avvezzo magari pensa di averla inviata.. bo?

    Ai fini del mio form non mi interessa, io sono a postissimo così, era solo per dirtelo!

    Grazie - grazie - grazie - grazie -
    Daniela
    Una settimana un giorno, solamente un ora a volte vale una vita intera, il tempo passa in fretta e ti ruba quello che hai...

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    scusa non ho capito, non fa il controllo sul campo mail?

    [edit] ho testato... a me lo fa sempre, in qualsiasi condizione :master:

  6. #6
    Si, in effetti, sul nuovo form con checbox fa il controllo ma non appare il box, ho provato con il tuo form versione precedente ed è tutto a posto, allora sicuramente ho manomesso qualcosa. Non rispondere, vado a controllare e ti faccio sapere cosa ho combinato.
    Daniela
    Una settimana un giorno, solamente un ora a volte vale una vita intera, il tempo passa in fretta e ti ruba quello che hai...

  7. #7
    Infatti And80, l'errore era il mio, semplicemente ho cancellato per errore dallo stage il box errore_mail..
    In seguito a sito quasi ultimato, lo posterò in "annunci siti in flash" così potrò ulteriormente migliorarlo.
    Grazie per la tua gentilezza e per avermi regalato il tuo tempo che a giuducare dal tuo sito è un tempo dedicato al progresso.. vedi as3.. etc..
    Daniela
    Una settimana un giorno, solamente un ora a volte vale una vita intera, il tempo passa in fretta e ti ruba quello che hai...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.