我已经尝试了所有可能的方法,但我很难让默认的远程验证工作。
我只想尝试检查用户注册页面的邮件是否重复。因此,我声明输入如下:
<input type="email" name="email" required
placeholder="Dirección de correo"
data-parsley-trim-value="true"
data-parsley-trigger="change"
data-parsley-remote-options='{ "type": "POST", "dataType": "jsonp" }'
data-parsley-remote="checkmail.php"
data-parsley-remote-message="Mail duplicated"
class="form-control">
checkmail.php代码是:
require_once("../functions/mysqli_connect.php");
if (empty($_POST['email'])){
$errors[] = 'No llega el parametro de mail';
}else {
$email = trim($_POST['email']);
$q = ("select * from register where email ='" . $email . "'");
$r = mysqli_query($dbc, $q);
if ($r) {
if (($r->num_rows) > 0) {
echo json_encode(404);
} else {
echo json_encode(200);
}
}
}
我已经尝试了多种回声响应组合,我已经读取了stackoverflow上的所有消息,但无法找到解决方案,因为我总是收到消息: 此值似乎无效。
当我阅读另一个用户问题时,我已尝试过:
data-parsley-remote-message="Mail duplicated"
但也没有运气。
PHP代码按预期工作,因此没有错误,但Parsley总是将json_encode响应视为错误。
任何帮助都会受到赞赏。
提前致谢。
答案 0 :(得分:0)
Parsley远程验证器查找 HTTP响应代码,而不是查找正文内容本身。在您的示例中,您可能返回的json数据可能始终是HTTP 200状态代码。
也许请点击http://php.net/manual/en/function.http-response-code.php或Set Response Status Code,了解如何更改回复状态代码。
最佳