2010-09-29 97 views
1

我在我的網站上有一個很好看的幻燈片/滑動jQuery表單。它將數據發送到相同的文件以發送電子郵件。這工作得很好:jQuery/ajax表單 - 發送到php問題

$(document).ready(function(){ 
    $('div.contact a.submit').click(function() { 
     var name = $('div.contact input.name').val(); 
     var email = $('div.contact input.email').val(); 
     var message = $('div.contact textarea.message').val(); 
     $('div.contact').slideUp('slow', function() { 
      $.ajax({ 
       type: "POST", 
       url: "test.php", 
       data: "name=" + name + "&email=" + email + "&message=" + message, 
       success: function(msg) 
       { 
        $('div.contact').html('<h1>Contact</h1><div class="comment">Success!</div><div class="clear"></div><p class="indent">Thank you, we will be in contact shortly.</p>'); 
        $('div.contact').slideDown('slow'); 
       }//end of success 
      });//end of ajax 
     }); 
    }); 
}); 

在test.php的頂部的PHP發送電子郵件:

include("expander-b1.0.php"); 
$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
sendmail("[email protected]", $message, "Contact message from $name", $email); 

這是從外部文件讓我簡單的郵件功能。但是,我想要一些方法來驗證表單條目(包括電子郵件驗證),然後在聯繫潛水中顯示錯誤。我對jQuery或ajax沒有經驗,但無法使用if語句在我的php中工作,並在ajax的「成功」部分回顯變量。

回答

1
$(document).ready(function(){ 
    $('div.contact a.submit').click(function() { 
     var name = $('div.contact input.name').val(); 
     var email = $('div.contact input.email').val(); 
     var message = $('div.contact textarea.message').val(); 

     //Email Validation 
     var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
     if(reg.test(email) == false) { 
      alert('Invalid Email Address'); 
      return false; 
     } 
     //Name and message VALIDATION 
     //-------- goes here ------------// 

     $('div.contact').slideUp('slow', function() { 
      $.ajax({ 
       type: "POST", 
       url: "test.php", 
       data: "name=" + name + "&email=" + email + "&message=" + message, 
       success: function(msg) 
       { 
        $('div.contact').html('<h1>Contact</h1><div class="comment">Success!</div><div class="clear"></div><p class="indent">Thank you, we will be in contact shortly.</p>'); 
        $('div.contact').slideDown('slow'); 
       }//end of success 
      });//end of ajax 
     }); 
    }); 
}); 
+0

謝謝你,我現在已經大部分工作了! :d – ryryan 2010-09-29 19:35:44

0

您需要使用mysql_real_escape()過濾惡意代碼,您可以使用正則表達式來檢查有效的電子郵件。如果你谷歌爲它,你會發現很多文件和教程。

,你也可以很容易對自己和購買(或找到一個免費的)準備使用的驗證類 - >Codecanyon validation class

以及關於成功的部分看看這個問題 - >how can i create a success back function?