2011-03-26 68 views
1

我有一個表單(用於密碼重置),首先驗證輸入是否是正確的電子郵件,然後它應該在我的用戶數據庫中查找該電子郵件的存在,最後重置密碼並通過電子郵件發送給用戶新的那一個。結合PHP和jQuery驗證

我可以做所有事情,但我希望在沒有頁面刷新的情況下工作。通常我會在PHP中完成這一切,並且如果我的數據庫中沒有這樣的電子郵件條目,它將在刷新頁面後作出響應。問題是,我希望這個頁面用作POST的文件能夠將數據發送回頁面而不刷新,並顯示錯誤。我打算使用jQuery $.post()。任何幫助?

這裏是我的jQuery郵編:

$.post('php/recoverPost.php', $('#recoverPost').serialize(), function(){ 
       $('#recoverPost').hide(); 
       $('#success').show(); 
      }); 

回答

2

你可以做這樣的事情:

$('#registerform').submit(function() { 
    e.preventDefault(); 
    $.ajax({ 
     'url': 'posturl.php', 
     'type': 'POST', 
     'data': { 
      'email': $('#email').val(), 
      'username': $('#username').val() 
     }, 
     'success':function(data) { 
      if(data == 'success') { 
       alert('did it!'); 
      } else { 
       alert('I failed!'); 
      } 
     } 
    }); 
}); 

如果你讓posturl.php回聲「成功」,如果電子郵件不存在這將工作。

+0

這正是我想要做的,但我試圖使用'$ .post()'而不是'$ .ajax()'。 – AKor 2011-03-26 19:31:23

+0

@teuneboon發佈的代碼與'$ .post()'相同,這只是一個更長的做法。 (我其實更喜歡這樣做自己)。請參閱:http://api.jquery.com/jQuery.post/ – Josh 2011-03-26 19:40:31

0
$("#form").submit(function(event) { 
    event.preventDefault(); 
    $.post(url, ,$('#recoverPost').serialize(), 
     function(data) { 
      $('#recoverPost').hide(); 
      $('#success').show(); 
     } 
    ); 
    });