2012-04-26 187 views
0

我設計了一個註冊表單,您可以看到here。它包括一個JavaScript驗證腳本,除了檢查用戶名是否已經存在於MySQL數據庫之外,它處理所有事情。驗證以檢查用戶名是否已經存在於數據庫中,而無需加載新頁面

目前處理的方式是由提交表單時調用的單獨的PHP頁面(register.php),並檢查MySQL數據庫,如果用戶名已存在,並且鏈接回到帶有註冊表單的html頁面。

我想知道是否有一種方法來不必加載新的PHP頁面,但當用戶試圖提交表單時附加一個錯誤信息到HTML表單(與所有其他驗證一樣)此用戶名已存在。唯一的辦法是這樣做,沒有單獨的表單發佈到PHP的PHP,而是將第二個文件中的所有PHP(連接到數據庫,檢查用戶名並添加新用戶)包含在main註冊頁面?

我希望這是明確的!

感謝,

尼克

+3

AJAX就是你要找的。 – Corbin 2012-04-26 21:43:39

+0

jquery ajax你可以用這個 – vvr 2012-04-27 08:36:49

回答

1

我假設你是在談論一個Ajax請求?如果你不知道什麼是前進和谷歌它,你會發現很多關於它的信息。

我總是使用一個像jQuery或dojo這樣的javascript庫,它使ajax變得更容易,但也許你不想爲javascript的一點小用途添加整個javascript庫的開銷。

的基本前提是:

  1. 您的JavaScript發送請求到服務器,在這種情況下您的register.php頁面。
  2. register.php文件以您在ajax請求中傳遞它的參數運行。
  3. javascript從register.php文件接收響應。在這種情況下,它很可能是最容易做的事情,如:

    • 如果用戶名確實存在返回false,然後你的JavaScript函數可以使用一個回調彈出一個驗證錯誤。

    • 如果用戶名不存在,那麼register.php文件可以註冊/登錄它們並返回true。然後JavaScript將用戶重定向到他們應該去的頁面,就好像在後臺沒有任何事情發生一樣。

對於這裏編碼的目的是對我會怎麼用jQuery做一些僞代碼:

$.ajax({ 
    url:'register.php?username=theUsersName', 
    dataType:'html', 
    success:function(data){ 
    if (data) 
     --redirect to homepage 
    else 
     --pop up validation error 
    } 
}); 
+0

非常感謝。我現在使用ajax和jQuery。 – Nick 2012-04-27 21:02:48

相關問題