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.