如何配置Parsley远程验证器来处理我的API响应

时间:2014-07-19 20:19:13

标签: parsley.js

我已经尝试了所有可能的方法,但我很难让默认的远程验证工作。

我只想尝试检查用户注册页面的邮件是否重复。因此,我声明输入如下:

<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响应视为错误。

任何帮助都会受到赞赏。

提前致谢。

1 个答案:

答案 0 :(得分:0)

Parsley远程验证器查找 HTTP响应代码,而不是查找正文内容本身。在您的示例中,您可能返回的json数据可能始终是HTTP 200状态代码。

也许请点击http://php.net/manual/en/function.http-response-code.phpSet Response Status Code,了解如何更改回复状态代码。

最佳