2012-07-16 73 views
1

我試圖使用ajax將表單提交到數據庫。我成功地使用AJAX發佈到數據庫。但不是麻煩的是我不知道如何檢查提交的值是否已經存在於數據庫中。使用jquery validate插件檢查數據庫中是否存在電子郵件

我已經有PHP這樣做,但我試圖使用AJAX。我正在使用jquery驗證插件以下是代碼。

$('#subscribeForm').validate({ 
    errorElement: "p", 
    errorPlacement: function(error, element) { 
    $('.status').html(error); 
}, 

rules: { 
    email: { 
    required: true, 
    email: true, 
    remote: { 
     url: 'index.php', 
     type: 'post', 
     data: { 
      email: function(){ 
      // not sure how to check this 
     } 
    } 
} 
} 
}, 

messages: { 
email: { 
required: "Please enter your email.", 
email: "Please enter a valid email.", 
// remote: jQuery.format("{0} is already in use") // doesnt work 
} 
}, 

submitHandler: function(form) { 
var btn = $(".submit_button"); 
btn.attr("value", "Submitting.."); 

$(form).ajaxSubmit({ 
    success: function(){ 
     btn.attr("value", "Submitted"); 
    } 
}); 
return false; 
} 
}); 

這是我的PHP:

if(isset($_REQUEST['subscribeForm'])){ 
$email = trim($_POST['email']); 

if(empty($email) || !valid_email($email)){ 
    $status = 'Please provide valid email address.'; 
} else { 
    if(email_exist($email)){ 
     $status = 'You are already subscribed.'; 
    } else { 
     add_email($email); 
     $status = 'Thank you for subscribing.'; 
    } 
    } 
} 

編輯

這是我已經試過,但再次失敗。

if(isset($_REQUEST['subscribeForm'])){ 
$email = trim($_POST['email']); 

if(empty($email) || !valid_email($email)){ 
    $status = 'Please provide valid email address.'; 
} else { 
    if(email_exist($email)){ 
     $status = 'You are already subscribed.'; 
     echo false; 
    } else { 
     add_email($email); 
     $status = 'Thank you for subscribing.'; 
     echo true; 
    } 
} 
} 

而且我的JavaScript

rules: { 
email: { 
required: true, 
email: true, 
remote: { 
    url: 'index.php', 
    type: 'post' 
    } 
} 
}, 

messages: { 
email: { 
required: "Please enter your email.", 
email: "Please enter a valid email.", 
remote: "You are already subscribed." 
    } 
}, 

回答

1

你應該做你的JS的東西做的成功的回報功能「感謝您訂閱」回聲。

嘗試;

的Javascript

messages: { 
email: { 
required: "Please enter your email.", 
email: "Please enter a valid email.", 
success: "Thank you for subscribing.", 
// remote: jQuery.format("{0} is already in use") // doesnt work 
} 
}, 

PHP

if(isset($_REQUEST['subscribeForm'])){ 
$email = trim($_POST['email']); 

if(empty($email) || !valid_email($email)){ 
    $status = 'false'; 
} else { 
    if(email_exist($email)){ 
     $status = 'false'; 
    } else { 
     add_email($email); 
     $status = 'true'; 
    } 
    } 
} 
echo $status; 
+0

我不關心這個消息。我被困在如何檢查電子郵件是否已經存在。 – Subash 2012-07-16 14:44:48

1

只需在你的PHP文件中迴應一個錯誤代碼,並使用AJAX從JavaScript解析錯誤代碼,並確定郵件是否已被註冊。

PHP

define('ERROR_SUCCESS', 0); 
define('ERROR_ALREADY', 1); 
define('ERROR_INVALID', 2); 

if (isset($_REQUEST['subscribeForm'])) { 
    $email = trim($_POST['email']); 

    if (empty($email) || !valid_email($email)) { 
     $status = 'Please provide valid email address.'; 
     echo ERROR_INVALID; 
    } else { 
     if (email_exist($email)) { 
      $status = 'You are already subscribed.'; 
      echo ERROR_ALREADY; 
     } else { 
      add_email($email); 
      $status = 'Thank you for subscribing.'; 
      echo ERROR_SUCCESS; 
     } 
    } 
} 
+0

可能你寫了一個示例代碼,請.. – Subash 2012-07-16 14:36:38

+0

我很好的PHP的一部分。 JavaScript是我卡住的地方。 – Subash 2012-07-16 14:41:16

相關問題