Allora, ho provato cosi:
Questo è il form:
codice:
<form name="modulo" action="result.php" method="post">
<fieldset>
<legend>Dati personali (Facoltativo)</legend>
<label>Nome: <input type="text" name="nome" /></label>
<label>Città: <input type="text" name="citta" /></label>
<label>E-mail: <input type="text" name="email" onblur=Modulo(this) /></label>
<label>Faccio parte del Collettivo?
<label>Si<input type="radio" name="iscritto" value="si" checked /></label> <label>No<input type="radio" name="iscritto" value="no" /></label> <label>No, ma vorrei entrarvi!<input type="radio" name="iscritto" value="forse" /></label></label>
</fieldset>
<fieldset>
<legend>Messaggio</legend>
<textarea name="messaggio" cols="50" rows="10"></textarea>
</fieldset>
<input type="submit" value="invia" />
</form>
Questa la pagina result.php
Codice PHP:
<?php
/* destinatari */
$destinatari = "Collettivo Biancorosso - Info e consigli <webmaster@liberiliberi.it>";
/* oggetto */
$oggetto = "Consigli";
$messaggio = $_POST["nome"]."\n";
$messaggio.= $_POST["citta"]."\n";
$messaggio.= $_POST["iscritto"]."\n";
$messaggio.= $_POST["messaggio"]."\n";
$mittente.= $_POST["email"]."\n";
/* ed infine l'invio */
if(mail($destinatari, $oggetto, $messaggio, "From: $mittente\r\n"))
echo "Messaggio inviato con successo!";
else
echo "Si è verificato un errore durante l'invio!";
?>
questo è il javascript che ho collegato alla pagina col form:
codice:
function Modulo() {
// Variabili associate ai campi del modulo
var email = document.modulo.email.value;
// Espressione regolare dell'email
var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
if (!email_reg_exp.test(email) || (email == "") ) {
alert("Inserire un indirizzo email corretto.");
document.modulo.reset();
document.modulo.focus();
}
else {
document.modulo.submit();
}
}
I problemi sono due:
- se nel caso venga inserita una mail errata lo script cancella anche tutti gli altri campi del form,
- Se la forma dell' indirizzo e-mail è corretta lo script invia il form in automatico appena l' utente esce dal campo email, non dando cosi tempo di finir di completare il form!