2010-07-30 50 views

回答

0

終於能夠使它工作。

步驟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"}, 

這就是它!

+0

如果您使用多種語言,最後一段代碼「ajaxUser ...」可能會添加到其他地方會更好。否則,您必須將您的代碼複製到您使用的每個語言文件中。除此之外,在稍後的階段升級插件會更容易。 – bart 2011-04-28 05:47:28

+0

接收值爲:extraData,fieldId,fieldValue。不明白你爲什麼想出來:validateValue,validateValue,validateError。 – bart 2011-04-28 06:02:37