Ciao a tutti, avrei bisogno di un piccolo/grande aiuto, perchè non riesco a capire dove sbaglio. In pratica ho fatto un semplice form per inviare delle mail tramite php. Per renderlo un po' più accattivante ho aggiunto alcuni effetti tramite jquery. Nello specifico ho utilizzato ajax e il formato Json per dialogare con lo script php. Il problema risiede nella semplice dissolvenza del form per la durata della risposta. In effetti quando avviene l'invio dei dati il form si dissolve mostrando il messaggio di risposta ma non ricompare più. Questo mi andrebbe anche bene se non dovesi tenere conto degli eventuali errori di compilazione del form stesso. Percio' a me serve che si dissolva per il tempo di "elaborazione" dei dati e ricompaia con il messaggio di risposta.
Qualcuno sarebbe cosi' gentile da darmi un suggerimento sul da farsi? Grazie mille!
Di seguito il codice:
codice:
<form name="form" id="contactform">
<label for="name"><?php echo $lang['NAMEFORM']; ?></label>
<input class="boxform" type="text" name="name">
</p>
<label for="email"><?php echo $lang['EMAILFORM']; ?></label>
<input class="boxform" type="text" name="email">
</p>
<label for="message"><?php echo $lang['MESSFORM']; ?></label>
<textarea class="boxform" name="message" maxlength="1000" cols="10" rows="6"></textarea>
</p>
<input type="submit" class="button" name="submit" value="<?php echo $lang['send']; ?>">
</form>
[img]images/loading.gif[/img]
<div id="result"></div>
e jquery
codice:
jQuery(document).ready(function(){
jQuery("#contactform").submit(function(){
jQuery.ajax({
type: "POST",
url: "email.php",
data: jQuery("#contactform").serialize(),
dataType: "json",
success: function(msg){
jQuery("#contactform").hide();
jQuery("#load").fadeIn();
jQuery("#result").removeClass('error');
jQuery("#result").addClass('success');
jQuery("#result").addClass(msg.status);
jQuery("#result").html(msg.message);
},
error: function(){
jQuery("#result").removeClass('success');
jQuery("#result").addClass('error');
jQuery("#result").html("Errore invio form. Riprova");
}
});
return false;
});
});
e php:
codice:
<?php
include ('lang.php');
// Get data
$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['message'];
// Test variables
if ((isset($_POST['name']) && !empty($_POST['name'])) &&
(isset($_POST['email']) && !empty($_POST['email'])) &&
(isset($_POST['message']) && !empty($_POST['message']))) {
$email_exp = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i";
if(preg_match($email_exp,$email)) {
// Send Email
$to = ' ';
$subject = ' ';
$message = " $comment ";
$headers = "From: " . $email . "\r\n";
'Reply-To: noreply@ localhost' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
$lang['status'] = 'success';
$lang['message'] = $lang['sendmail'];
$lang['message'];
} else {
$lang['status'] = 'error';
$lang['message'] = $lang['errormail'];
$lang['message'];
}
} else {
$lang['error'] = 'error';
$lang['message'] = $lang['errorform'];
$lang['message'];
}
echo json_encode($lang);
?>