【发布时间】:2018-06-23 09:00:58
【问题描述】:
我阅读了 Parsley Js 网站的所有文档。但我还不够了解如何设置自定义验证取决于 AJAX 响应。
我需要验证用户名并检查它是否已经存在于数据库中,如果是,则在点击提交按钮时显示错误。
我在这里环顾四周,试图找到任何与此相关的问题,我无法理解只有我知道应该如何放置 ajax 代码来验证该表单。我需要知道 PHP 文件的样子。这就是我发布这个问题的原因
我正在使用 parsley 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>
我正在为 CSS 使用 Bootstrap 4。我的 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");
}
}
?>
但每次“用户名已存在”时,我都会收到默认错误消息。谁能知道这里的错误是什么?
【问题讨论】:
-
如果您不知道如何使用 post 变量进行 sql 查询,那么也许从 php 更改为您更熟悉的语言? jquery根据请求的http状态码运行成功/错误函数,所以如果你返回200 OK(默认)就会进入成功回调,如果你返回其他任何东西就会进入错误回调
-
不知道如何查询数据库表,我需要知道要从 php 文件返回什么
-
如果你能把repo发给我,我也许能找到答案。下午
-
我会发给你兄弟:)
-
使用 chrome 开发者工具检查你的 username.php 页面是否被正确调用并且没有返回任何语法错误。
标签: php ajax bootstrap-4 parsley.js