好,WordPress的用戶名可用性AJAX使用表單驗證引擎
我剛纔的問題給我帶來了使用這個腳本:
http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/
因爲我完全沒有知識我不瞭解如何使用「ajax [ajaxUser]」類來適應「內聯AJAX驗證」,以在Wordpress網站中設置新帳戶時檢查用戶名可用性。
任何幫助將不勝感激。 謝謝!
好,WordPress的用戶名可用性AJAX使用表單驗證引擎
我剛纔的問題給我帶來了使用這個腳本:
http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/
因爲我完全沒有知識我不瞭解如何使用「ajax [ajaxUser]」類來適應「內聯AJAX驗證」,以在Wordpress網站中設置新帳戶時檢查用戶名可用性。
任何幫助將不勝感激。 謝謝!
終於能夠使它工作。
步驟1 -首先得到了HTML表單。在輸入字段,用戶名必須是在輸入你必須添加要應用到它的驗證規則,在我的情況是:
<input type="text" name="user_login" id="user_login" class="validate[required,length[5,15],ajax[ajaxUser]]" value="Username"/>
「必需的」,因爲是必填字段,「長度[5 ,15]「有助於縮小搜索範圍,而」ajax [ajaxUser]「是我們自定義的正則表達式規則。
第2步 -要訪問數據庫中使用此dbConnector.php:
<?php
class DbConnector {
var $theQuery;
var $link;
function DbConnector(){
// Get the main settings from the array we just loaded
$host = 'HOST';
$db = 'DATABASE';
$user = 'root';
$pass = 'root';
// Connect to the database
$this->link = mysql_connect($host, $user, $pass);
mysql_select_db($db);
register_shutdown_function(array(&$this, 'close'));
}
//*** Function: query, Purpose: Execute a database query ***
function query($query) {
$this->theQuery = $query;
return mysql_query($query, $this->link);
}
//*** Function: fetchArray, Purpose: Get array of query results ***
function fetchArray($result) {
return mysql_fetch_array($result);
}
//*** Function: close, Purpose: Close the connection ***
function close() {
mysql_close($this->link);
}
}
?>
只需要更換價值$主機,$分貝,$用戶和$通過與那些相應的服務器和數據庫。
第3步 -然後創建一個名爲validateUser.php文件,該文件將採取值從數據庫中,他們在輸入字段中鍵入的信息進行比較,並用比較的結果通知驗證JS。
<?php
/* RECEIVE VALUE */
$validateValue=$_POST['validateValue'];
$validateId=$_POST['validateId'];
$validateError=$_POST['validateError'];
/* RETURN VALUE */
$arrayToJs = array();
$arrayToJs[0] = $validateId;
$arrayToJs[1] = $validateError;
include("dbConnector.php");
$connector = new DbConnector();
$query = "SELECT user_login FROM wp_users WHERE user_login = '$validateValue' LIMIT 1";
$result = $connector->query($query);
$num = mysql_num_rows($result);
if($num == 0){ // validate??
$arrayToJs[2] = "true"; // RETURN TRUE
echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // RETURN ARRAY WITH success
}else{
for($x=0;$x<1000000;$x++){
if($x == 990000){
$arrayToJs[2] = "false";
echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // RETURN ARRAY WITH ERROR
}
}
}
mysql_close();
步驟4 -共忘了這個基本步驟。您必須打開文件jquery.validationEngine-en.js並指定您自定義的正則表達式規則。 搜索此評論:「//添加您的正則表達式規則,在這裏,你可以把電話作爲一個例子」,並在其下添加新規則:
"ajaxUser":{
"file":"./wp-content/themes/AtelierMomoni/library/js/validateUser.php",
"alertTextOk":"* Great! This username is available",
"alertTextLoad":"* Loading, please wait",
"alertText":"* Sorry, this username already been taken"},
這就是它!
如果您使用多種語言,最後一段代碼「ajaxUser ...」可能會添加到其他地方會更好。否則,您必須將您的代碼複製到您使用的每個語言文件中。除此之外,在稍後的階段升級插件會更容易。 – bart 2011-04-28 05:47:28
接收值爲:extraData,fieldId,fieldValue。不明白你爲什麼想出來:validateValue,validateValue,validateError。 – bart 2011-04-28 06:02:37