Как проверить имя пользователя с помощью Javascript? - PullRequest
1 голос
/ 16 мая 2010

Я хочу знать, как я могу проверить с помощью Javascript, что если пользователь ввел какое-либо имя пользователя во время создания учетной записи, уже присутствует в базе данных, и попросить пользователя ввести любое другое имя пользователя?

Ответы [ 4 ]

11 голосов
/ 16 мая 2010
  1. Прикрепить прослушиватель для события blur для элемента <input />.
  2. Использование AJAX для отправки запроса на сервер (со значением поля в качестве параметра)
  3. На стороне сервера проверьте, используется ли данное имя пользователя или нет
  4. На основе отображения ответа сервера (или нет) Это имя пользователя уже используется message

jQuery (я слишком ленив для чистого JS) + пример кода PHP:

<form ...>
    ...
    <input type="text" name="username" id="input-username" />
    <p class="error"></p>
    ...

$("#input-username").blur(function() {
    $.post("/check-username.php", { username: $(this).val() }, function(data) {
        if ("0" == data) { /* username in use */
             $(this).next("p").text("This username is already in use.</p>");
        } else {           /* username is fine */
             $(this).next("p").empty();
        }
    });
});

<?php

$username = $_POST['username'];

// check whether given username exists in database
$usernameExists = ...;

echo $usernameExists ? '0' : '1'; // 0 if exists, 1 if not.
4 голосов
/ 16 мая 2010

Ответ - AJAX. Если вам необходимо выполнить проверку по базе данных, вам нужно сделать звонок на сервер. Единственный способ сделать это ( EDIT : правильно) без перезагрузки страницы - это AJAX. То, как вы это реализуете, будет зависеть от того, какие библиотеки javascript вы используете, если таковые имеются, и каков ваш сервер. Я предлагаю вам немного поискать и почитать на нем - это довольно распространенный вариант использования.

1 голос
/ 16 мая 2010

Лично я бы использовал плагин проверки JQuery, чтобы упростить задачу. http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Но в целом это будет небольшой AJAX-запрос к серверу (т. Е. Объекту JSON) с именем пользователя и выполнением «поиска» в вашей базе данных и возвращением либо true / false, после того как пользователь нажмет ввод или вкладку в текстовое поле (прикрепить прослушиватель событий). Затем в ответе на обратный вызов измените выбранные элементы DOM, чтобы указать своим пользователям, присутствует ли имя учетной записи в базе данных или нет.

0 голосов
/ 16 мая 2010

Ajax может быть не единственным решением, так как имена пользователей, как правило, общедоступны. Простой способ - это просто иметь документ RDF / XML в какой-то момент (который просто обновляется при каждом добавлении нового пользователя), в котором есть список всех пользователей на вашем сайте, который вы можете легко просмотреть с помощью Javascript DOM, чтобы увидеть, является ли этот пользователь уже используется. Вы также заставляете их платить вычислительную мощность, а не вам, в зависимости от того, насколько вы хороши, это преимущество или неудобство.

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