2012-01-28 54 views
0

我有一個註冊表單,我立刻有三個領域自動檢查和提交到MySQL

的用戶名,密碼和電子郵件地址

這三個領域將被存儲在表A.when用戶輸入電子郵件地址我想檢查表B(不是我在提交時檢查的表A)該電子郵件地址的可用性。如果該表中的電子郵件地址是可用的,那麼我想從表B中獲取相應電子郵件地址的ID,並將該ID插入到電子郵件下面的隱藏字段中,當用戶點擊提交時,將提交所有字段。請告訴我們如何做

回答

0

什麼你要需要的是一些簡單的AJAX魔法,如果你沒有在你的代碼ahve它,但請你幫個忙,並抓住jQuery的http://www.jquery.com,做這樣的事情

<script> 
    $("#email").change(function(e) { 
     $.post("checkemail.php", { email: $(this).val() }, function(data) { 
      if(data.available == "false") { 
       $("#hidden_field_id").val(data.id); 
      } 
     }, "json"); 
    }); 
</script> 

這將打擊使用POST(與GET不同,確保每次刷新返回數據都是正確刷新的),當某人點擊或標籤離開該字段並且JavaScript看到該內容已經存在時,啓動checkemail.php腳本改變

在你checkemail.php

$return = array("available"=>"true", "id"=>""); 
$sql = mysql_query("select id from tableB where email='".trim($_POST['email'])."'"); 
if(mysql_num_rows($sql) > 0) { 
    $return['available'] = "false"; 
    $r = mysql_fetch_object($sql); 
    $return['id'] = $r->id; 
} 
echo json_encode($return); 

這是ping您的數據庫非常基本的功能,如果電子郵件被找到(所以只觸發每一次的內容是不同的過程中形成的壽命一次)它會抓取與該電子郵件相關的id(無論該字段恰好在您的數據庫中)並將其放入我們的返回數組中。 一旦所有的說法和完成,它會回聲出一個JSON編碼的數組用於Javascript(這就是爲什麼在你的腳本中,有一個「json」參數,因此數據被解析並準備好在ajax完成後使用呼叫)。如果它發現電子郵件不可用,它將採用存儲在json對象中的id號碼,並將其作爲您的表單中指定隱藏字段的值,用於存儲返回的id。

希望有幫助!