2010-05-15 6 views
3

Voici le code que je utilise pour la submitHandler:Trouble with formulaire email jquery submitHandler

submitHandler: function() { 
$('.holder').fadeOut('slow'); 
$('#loading').fadeIn('slow'); 
$.post('email.php',{name:$('#em_name').val(), email:$('#em_email').val(), message:$('#em_message').val()}, 
function(data){ 
    $('#loading').css({display:'none'}); 
    if(data == 'success') { 
    $('#callback').show().append('Message delivered successfully'); 
    $('#emailform').slideUp('slow'); 
    } else { 
    $('#callback').show().append('Sorry but your message could not be sent, try again later'); 
    } 
}); 
} 

Ce ne fonctionne pas lorsqu'il est utilisé conjointement avec ce php:

<?php $name = stripcslashes($_POST['name']); 
$emailAddr = stripcslashes($_POST['email']); 
$message = stripcslashes($_POST['message']); 
$email = "Message: $message \r \n From: $name \r \n Reply to: $emailAddr"; 
$to = '[email protected]'; 
$subject = 'Message from example'; 

//validate the email address on the server side 
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $emailAddr)) { 
    //if successful lets send the message 
    mail($to, $subject, $email); 
    echo('success'); //return success callback 
} else { 
    echo('An invalid email address was entered'); //email was not valid 
} 
?> 

Quelqu'un avoir des suggestions sur les raisons pour lesquelles cela ne fonctionne pas comme il se doit. Il semble juste bloquer quand je soumets. Toute aide serait appréciée. Merci!

Répondre

1

Recommandations

  1. Get Firebug ou HttpFox à debug scripts ajax. Vous pouvez voir toutes les demandes effectuées et les variables post/get.

  2. Dont utilisation eregi utilisation preg

  3. Ne pas utiliser preg pour valider l'utilisation du courriel php's filter functions

  4. Une autre idée de débogage: définir les $ _POST vars au-dessus du code email.php et visitez le email.php en votre navigateur pour voir si cela fonctionne.

+0

Merci, cela m'a beaucoup aidé! Trouvé qu'il cherchait le mauvais répertoire pour le fichier php ... Bon vieux firebug. – Robert