我有一個註冊表單,我立刻有三個領域自動檢查和提交到MySQL
的用戶名,密碼和電子郵件地址
這三個領域將被存儲在表A.when用戶輸入電子郵件地址我想檢查表B(不是我在提交時檢查的表A)該電子郵件地址的可用性。如果該表中的電子郵件地址是可用的,那麼我想從表B中獲取相應電子郵件地址的ID,並將該ID插入到電子郵件下面的隱藏字段中,當用戶點擊提交時,將提交所有字段。請告訴我們如何做
我有一個註冊表單,我立刻有三個領域自動檢查和提交到MySQL
的用戶名,密碼和電子郵件地址
這三個領域將被存儲在表A.when用戶輸入電子郵件地址我想檢查表B(不是我在提交時檢查的表A)該電子郵件地址的可用性。如果該表中的電子郵件地址是可用的,那麼我想從表B中獲取相應電子郵件地址的ID,並將該ID插入到電子郵件下面的隱藏字段中,當用戶點擊提交時,將提交所有字段。請告訴我們如何做
什麼你要需要的是一些簡單的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。
希望有幫助!