Chiudere finestra popup dopo evento

di il
5 risposte

Chiudere finestra popup dopo evento

Ciao a tutti,

ecco la situazione che mi si presenta: richiamandolo da un file html, creo in una finestra popup un form che invia dati ad una certa mail; effettuato l'invio dei dati, all'interno del popup faccio apparire un messaggio di invio eseguito correttamente (ciò che visualizzo all'interno del popup è creato tramite PHP). Ho la necessità di far chiudere in automatico dopo un tot di secondi il popup, dopo che è stato visualizzato il messaggio di invio corretto, cioè: compilo il form, clicco su invia dati, appare il messaggio di invio corretto e poi si deve chiudere il popup.

Sapreste aiutarmi? Grazie!

P.S.: cosa secondaria: come dò uno stile alle pagine che creo tramite PHP come quello che appunto ho nel popup?

5 Risposte

  • Re: Chiudere finestra popup dopo evento

    Andiamo con ordine,

    non avendo sott'occhio il tuo codice non posso sapere qual'è l'evento che usi per aprire il popup, ma un metodo veloce per chiudere una finestra è
    
    var formwin = popup che usi per il form
    function closeWin() {
      formwin.close();
    }
    
    seconda cosa: lo puoi fare semplicemente con css, che problema riscontri?
  • Re: Chiudere finestra popup dopo evento

    Grazie per la risposta, mi metto a provare quello che mi hai suggerito.
    "Popup che usi per il form"... cioè?

    Il popup lo apro con l'evento onClick su un "button": ho creato una funzione che usa "window.open" --> window.open("form.html", "nome_finestra", "dimensioni_popup");

    Per il css ho questo problema: il PHP che manda i dati ad una mail mi crea anche il messaggio di corretto invio. Ho quindi il file inviodati.php con all'interno una cosa tipo $messaggiook = ''invio dati riuscito'; io vorrei far scrivere "invio dati riuscito" con uno stile mio, però non so dove scrivere questo stile.
  • Re: Chiudere finestra popup dopo evento

    Semplicemente al
    $messaggiook = 'invio dati riuscito';
    lo fai diventare
    $messaggiook = '<div class="msg-ok">' . 'invio dati riuscito' . "</div>";
    così da css puoi usare la classe per formattare il messaggio
  • Re: Chiudere finestra popup dopo evento

    Linko il foglio di stile nel file PHP in questo modo?

    EDIT li inserisco in questo modo all'interno del file PHP:
    echo '<link rel="stylesheet" type="text/css" href="stile.css">';

    var formwin = popup che usi per il form
    function closeWin() {
    formwin.close();
    }
    popup che usi per il form........ cioè?
  • Re: Chiudere finestra popup dopo evento

    Vi metto il codice che ho scritto:

    index.html
    <html>
    <head>...</head>
    <body>
    <button onClick="apriForm()">Form</button>
    <script>
    function apriForm(){
    var myWindow = window.open("form.html", "Form", "width=600,height=400");
    }
    </script>
    </body>
    </html>
    form.html
    <html>
    <head>...</head>
    <body>
    <form action="inviodati.php" method="post">
    <label for="name">Nome</label>
    <input name="name">
    <label for="surname">Cognome</label>
    <input name="surname">
    <label for="email">e-Mail</label>
    <input name="email" type="email">
    <input id="submit" name="submit" type="submit" value="Invia" onClick="chiudi()">
    </form>
    <script>
    function chiudi(){
    window.setTimeout('window.close();', 2000);
    }
    </script>
    </body>
    </html>
    inviodati.php
    <?php
    $mailto = 'mail_a_cui_inviare_i_dati';
    $subject = 'oggetto_della_mail;
    $error_message = 'Invio non riuscito...';
    $success_message = 'Invio dati eseguito correttamente!';
    $messaggio = $messaggio ."Nome: " .$_POST['name'] ."\n";
    $messaggio = $messaggio ."Cognome: " .$_POST['surname'] ."\n";
    $messaggio = $messaggio ."e-Mail: " .$_POST['email'] ;
    if (mail($mailto, $subject, $messaggio)) {
    echo($success_message);
    }
    else {
    echo($error_message);
    }
    ?>
    In questo modo funziona e chiudo il popoup dopo 2 secondi, ma vorrei che i 2 secondi iniziassero a partire da quando appare il messaggio di "invio eseguito correttamente" o "invio non riuscito" e non da quando premo sul pulsante per inviare i dati.
    Se aumento il tempo di attesa (cosa che comunque non va bene perchè non posso sapere i tempi di invio) il form passa all'indirizzo PHP e non viene più chiuso il popup.
Devi accedere o registrarti per scrivere nel forum
5 risposte