2013-07-18 26 views
1

我想驗證與jQuery和PHP的聯繫表格,但我總是從PHP中,即使它工作正常。我會用我的代碼解釋:
這是我的html:驗證與jQuery和PHP的聯繫表格

<form method='post'> 

    <label>Name<input id="name" type="text" name="name" /></label> 

    <label>Email Address<input id="email" type="text" name="email" /></label> 

    <label>Subject<input id="subject" type="text" name="subject" /></label> 

    <label>Message<textarea id="message" name="message"></textarea></label> 

    <label><input type="button" value="Submit Form" id="button_form" /></label> 

</form> 

這是我的js代碼:

function validaForm(){ 
    // Campos de texto 
    if($('#email').val() == ""){ 
     alert("You must fill in at least the email field."); 
     $('#email').focus(); 
     return false; 
    } 

    return true; 
} 

$('#button_form').click(function() {  
     if(validaForm()){        
      $.post("php/form.php",$('form').serialize(),function(res){ 
       if(res == 1){ 
        alert("Your e-mail has been sent, Thank you for contacting us. We will answer you as soon as possible."); 

       } else if(res == 0){ 
        alert("Sorry, your e-mail couldn't been sent, please try again later."); 
       } else { 
        alert("Others."); 
       } 
      }); 
     } 
    }); 

這是我的PHP文件:

<?php 
require 'class.phpmailer.php'; 

$mail = new PHPMailer(); 

$mail->IsSMTP();          
$mail->Host = 'smtp.domain.com'; 
$mail->SMTPAuth = true;        
$mail->Username = '[email protected]';        
$mail->Password = 'pass';       
$mail->SMTPSecure = 'tls';        

$mail->From = '[email protected]'; 
$mail->FromName = 'Contact Form'; 
$mail->AddAddress('[email protected]');    

$mail->AddAttachment('/var/tmp/file.tar.gz');   
$mail->AddAttachment('/tmp/image.jpg', 'new.jpg');  
$mail->IsHTML(true);         

$mail->Subject = $_POST['subject']; 

$mensajeFinal = "Message"; 

$mail->Body = $mensajeFinal; 

if(!$mail->Send()) { 
    return false; 
} else { 
    return true;  
}; 

?> 

好吧,一切工作正常,我的意思是,它發送的電子郵件,但問題是,我總是從PHP文件錯誤,無論它發送或不發送電子郵件。
我做錯了什麼?有什麼我失蹤?
我將不勝感激任何幫助。感謝很多。

回答

1

你必須在這裏使用echo,這不是功能。 return用於返回函數的結果。還刪除;

else {...}; 
     ^

if(!$mail->Send()) { 
    echo false; 
} else { 
    echo true;  
} 
+1

你是比我更快。 :D –

+0

@GuilhermeOderdenge FGITW。 :D –

+0

當然你是XD –

0

在你點擊功能

$('#button_form').click(function() { .... }); 

一定要return false如果validaForm返回false

0

喜把

$(document).ready(function() { 

}); 

之間的代碼如下

$(document).ready(function() { 
$('#button_form').click(function() {  
     if(validaForm()){        
      $.post("php/form.php",$('form').serialize(),function(res){ 
       if(res == 1){ 
        alert("Your e-mail has been sent, Thank you for contacting us. We will answer you as soon as possible."); 

       } else if(res == 0){ 
        alert("Sorry, your e-mail couldn't been sent, please try again later."); 
       } else { 
        alert("Others."); 
       } 
      }); 
     } 
    }); 
});