ajax — проверка уникальности имени пользователя в Parsley (2.8.1) с помощью переполнения стека

Я прочитал всю документацию веб-сайта Parsley Js. Но я не понимаю, как настроить пользовательскую проверку в зависимости от ответа AJAX.

Мне нужно проверить имя пользователя и проверить, если оно уже существует в базе данных, если это да, и показать ошибку при нажатии кнопки отправки.

Я оглядываюсь сюда и пытаюсь найти любой вопрос, касающийся этого, но я не могу сказать, что только я понял, как должен размещаться код ajax для проверки этих форм. Мне нужно знать, как выглядит файл PHP. Вот почему я отправляю этот вопрос

Я использую петрушку JS новой версии. Вот мой код выглядит

<form class="forms-sample" id="form">
<div class="form-group">
<label for="exampleInputUsername1">Username</label>
<input type="text" class="form-control" id="exampleInputUsername1"name="username" placeholder="Username" required data-parsley-username>
</div>
<button type="submit" class="btn btn-success mr-2">Submit</button>
<button class="btn btn-light">Cancel</button>
</form>

и я использую Bootstrap 4 для CSS. Мой Parsley JS скрипт, как это

        <script>
window.ParsleyValidator
.addValidator('username', function (value, requirement) {
var response = false;

$.ajax({
url: "username.php",
data: {username: value},
dataType: 'json',
type: 'post',
async: false,
success: function(data) {
response = true;
},
error: function() {
response = false;
}
});
return response;
}, 32)
.addMessage('en', 'username', 'The username already exists.');

$("#form").parsley({
errorClass: 'is-invalid',
successClass: 'is-valid',
errorsWrapper: '<span class="invalid-feedback"></span>',
errorTemplate: '<span></span>',
trigger: 'change'

});
</script>

Я не могу представить, как я создаю файл PHP для написания запроса и что я хочу повторить из этого PHP.

Не могли бы вы сказать мне что-нибудь, что нужно изменить здесь, и можете ли вы помочь мне собрать этот файл PHP для выполнения этой задачи. И мне нужно знать, это JS будет работать или нет. Спасибо.

После того, как я добавил файл php. это что-то вроде этого

<?php
include("include/connection.php");
?>
<?php
if(isset($_POST['username'])){
$username = $_POST['username'];
$query = "SELECT * FROM user WHERE userName = '%$username'";
$q = mysqli_query($conn, $query);
if(mysqli_num_rows($q) > 0) {
echo json_encode("error");
}else {
echo json_encode("success");
}
}
?>

но я получаю сообщение об ошибке по умолчанию каждый раз, когда было «имя пользователя уже существует». Кто-нибудь может знать, в чем здесь ошибка?

0

Решение

в username.php вы собираетесь выполнить базовый запрос выбора для передаваемого вами имени пользователя, а затем вернуть данные в зависимости от того, найдет ли он результат или нет.

Следующее должно быть довольно близко.

PHP

if ($user = $mysqli->query("SELECT * FROM `user_table_name` WHERE `username_field_name` = $_POST['username']"))) {
print(json_encode(['status'] => 'user_exists']))

} else {
print(json_encode(['status'] => 'user_available']))
}

AJAX

$.ajax({
url: "username.php",
data: {username: value},
dataType: 'json',
type: 'post',
async: false,
success: function(data) {
if( data.status === 'user_available ) {
//continue your code
} else {
//alert user that the name is unavailable
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]