2010-05-15 42 views
3

这里是我使用的submitHandler代码:麻烦与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'); 
    } 
}); 
} 

这连同这个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 
} 
?> 

有谁有什么建议,为什么这不是应该如此。我提交时似乎只是锁定。任何帮助,将不胜感激。谢谢!

回答

1

建议

  1. 获取萤火虫或者是HttpFox调试AJAX脚本。您可以看到所有请求和post/get变量。

  2. 不使用eregi使用preg

  3. 不使用预浸验证电子邮件的使用php's filter functions

  4. 另一个调试思路:设置$ _ POST瓦尔的email.php以上代码,并参观了email.php在您的浏览器,看看它的工作。

+0

谢谢,这帮了很多!发现它正在寻找错误的目录中的PHP文件...好老的萤火虫。 – Robert 2010-05-15 03:19:00