2010-07-01 33 views
0

當訪問者在我的網站上註冊時,他們將作爲團體的創始成員或加入現有團體的人員這樣做。沒有人是「無組織」。我有一個註冊頁面,其中包含以下字段:名字,姓氏,(用於選擇組類型的單選按鈕:新建或現有),組名,組密碼,電子郵件,密碼,確認密碼。我特別關心單選按鈕,組名和組密碼。
我在尋找的具體功能是這樣的: 如果選擇「新建」,AJAX會檢查數據庫中是否存在組名,顯示「Good」或「Already taken」。另外:表單提交時,密碼保存到數據庫。
如果選擇「Existing」,AJAX將檢查組名是否存在於db中,並顯示「匹配」或「不存在」。同時:提交表格時,會根據數據庫檢查密碼。如何使單選按鈕控制所有這些?

這個基本知識我認爲我有一個處理,但如何讓單選按鈕指示如此之多超出了我。任何幫助,將不勝感激。

下面是我的php文件的一部分。 (順便說一句,我一直在寫的mysqli此項目。)

<h1>Register</h1> 
<form action="register.php" method="post"> 
    <fieldset> 

    <p><b>First Name:</b> <input type="text" name="first_name" size="20" maxlength="20" value="<?php if (isset($trimmed['first_name'])) echo $trimmed['first_name']; ?>" /></p> 

    <p><b>Last Name:</b> <input type="text" name="last_name" size="20" maxlength="40" value="<?php if (isset($trimmed['last_name'])) echo $trimmed['last_name']; ?>" /></p> 

    <p><b>Are you registering a new group or joining an existing group?</b> <br /> 
    New:<input type="radio" value="new" name="gtype">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
    Existing:<input type="radio" value="existing" name="gtype"> </p> 

    <p><b>Group ID:</b> <input type="text" name="group_id" size="20" maxlength="40" value="<?php if (isset($trimmed['group_id'])) echo $trimmed['group_id']; ?>" /></p> 

    <p><b>Group Password:</b> <input type="password" name="gpass" size="8" maxlength="5" /> 
     <small>Use only numbers. Must be 5 digits long.</small></p> 

    <p><b>Email Address:</b> 
    <input type="text" name="email" size="30" maxlength="80" value="<?php if (isset($trimmed['email'])) echo $trimmed['email']; ?>" onBlur='checkEmail(this)'/><span id='info'></span></p> 

    <p><b>User Password:</b> 
     <input type="password" name="password1" size="8" maxlength="4" /> 
     <small>Use only numbers. Must be 4 digits long.</small></p> 
    <p><b>Confirm Password:</b> <input type="password" name="password2" size="4" maxlength="4" /></p> 
    </fieldset> 

    <div align="center"><input type="submit" name="submit" value="Register" /></div> 
    <input type="hidden" name="submitted" value="TRUE" /> 

</form> 
+0

'如果「Existing」選中,AJAX檢查組名是否存在於數據庫中'不要忘記在提交表單時再次進行相同的檢查,否則將會出現安全漏洞 – 2010-07-01 19:10:17

回答

0

我建議使用jQuery:

檢測的單選按鈕的變化,就像這樣:

$("input[@name='gtype']").change(

抓取包含組名稱的文本輸入內容,並將其發送到PHP腳本。

$.ajax 
     ({ 
      url: 'Apps/CheckGroupName.php', 
      type: 'POST', 
      data: 'groupName=' + groupName, 

      success: function(result) 
      { 
       // Do whatever you need to do based on the result 
      } 
     }); 

在PHP腳本中,檢查數據庫中的組名,並回顯結果。在JQuery中,結果最終會成功:函數(結果),在那裏你可以做任何你需要做的事情(比如警告用戶,或者確認這個組不存在)

+0

對不起,有些東西在這裏逃跑我不知道我不太明白我應該怎麼使用第一部分代碼,你能解釋一下嗎?謝謝。 – David 2010-07-02 18:27:05

+0

@David:啊,你從來沒有用過jQuery,對嗎?先了解它是如何工作的,我建議你瀏覽http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/上的優秀視頻教程,你將不得不投資一段時間,但你會很高興你做了,如果我有爲您解釋代碼,我將不得不解釋如何安裝該庫,如何使用DOM以及本教程中已經涵蓋的其他所有內容。 – Sylverdrag 2010-07-03 06:04:45

相關問題