Доступность имени пользователя Wordpress в AJAX с использованием Form-Validation-Engine - PullRequest
1 голос
/ 30 июля 2010

Ну,

мой предыдущий вопрос привел меня к использованию этого сценария:

http://www.position -absolute.com / articles / jquery-form-validator-Потому-form-validation-is-a-mess /

Из-за моего полного недостатка знаний я не понимаю, как я могу приспособить "Inline AJAX validation" с классом "ajax [ajaxUser]" для работыпроверка доступности имени пользователя при создании новой учетной записи на сайте Wordpress.

Любая помощь будет принята с благодарностью.Спасибо!

1 Ответ

0 голосов
/ 31 июля 2010

Наконец-то удалось заставить его работать.

Шаг 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);

    }

}

?>

Просто нужно заменить значения $ host, $ db, $ user и $ pass на значения, соответствующие вашему серверу и базе данных.

Шаг 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"},

Вот и все!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...