2013-01-22 130 views
0

HTML代碼的形式提交:電子郵件可用性檢查返回適用於所有電子郵件

<div class="control-group"> 
    <label class="control-label" for="input01">Email</label> 
    <div class="controls"> 
     <input type="text" class="input-xlarge" id="email" name="email" 
     rel="popover" data-content="What’s your email address?" 
     data-original-title="Email"> 
     <span class="check" style="color:red;" ></span> 
    </div> 
</div> 

jQuery代碼張貼郵件到PHP腳本:

$(function() { 
    $('#email').keyup(function() { 
     var email = $(this).val(); 
     if (email != '') { 
      //$('.check').show(); 
      $('error').fadeIn(400).html('<img src="/img/ajax-loading.gif" />'); 
      var dataString = 'email=' + email; 
      $.ajax({ 
       type: "POST", 
       url: "pages/check_email.php", 
       data: dataString, 
       cache: false, 
       success: function (result) { 
        if (result == '') { 
         $('.check').html(email + ' Avaliable'); 
         $('#create').attr('disabled', ''); 
         $('#create').attr('value', 'Active'); 
         $("#email").removeClass("red"); 
         $("#email").addClass("white"); 
        } else { 
         $('.check').html(email + ' ' + result); 
         $('#create').attr('disabled', 'disabled'); 
         $('#create').attr('value', 'Deactive'); 
         $("#email").removeClass("white"); 
         $("#email").addClass("red"); 
        } 
       } 
      }); 
     } else { 
      $('.check').html(''); 
      $('#submit').attr('disabled', 'disabled'); 
      $('#submit').attr('value', 'Deactive'); 
     } 
    }); 
}); 

PHP代碼檢查電子郵件可用性並返回1或0應找到一個值/未找到:

include_once "../base.php"; 

$stmt = $db->prepare("SELECT * FROM `Consultants` WHERE email =':email'"); 
$stmt->bindParam(":email", $_POST['email']); 
$stmt->execute(); 

$num_rows = $stmt->fetchColumn(); 
$HTML=''; 
if($num_rows > 0){ 
    $HTML='is already used'; 
}else{ 
    $HTML=''; 
} 
echo $HTML; 

$stmt = null; 

對於每個電子郵件的輸入,它重新變成'可用'。我在我的數據庫中有幾個電子郵件,我正在使用。我在控制檯中也沒有收到任何錯誤。

回答

1

您可以選擇從Consultants表中的所有領域,所以第一列可能取值爲東西比0

此外,你準備好的聲明中不應使用周圍的綁定參數:email報價大。

要解決:

$stmt = $db->prepare("SELECT COUNT(*) FROM `Consultants` WHERE email =:email"); 
+0

它仍然會返回「可用」的,是不是很遺憾的電子郵件地址。 – Ben

+0

if($ num_rows> 0){ \t $ HTML ='Unavailable'; } else { \t $ HTML ='Available'; } 然後jQuery的編輯 - 如果(結果=='可用'){... 不幸的是仍然返回可用的不可用的電子郵件! – Ben

+1

@BenLittle更新的答案,你準備好的聲明有另一個問題。 –

相關問題