Jquery验证插件 - 检查电子邮件是否存在

时间:2013-06-18 22:22:44

标签: php jquery validation

如果电子邮件已存在于db中,我正在尝试检查电子邮件字段模糊。我的代码现在是:

<script type="text/javascript">
    $(document).ready(function () {
        // Validation
        $("#soutez").validate({
            rules: {
                   email: {
                    required: true,
                    email: true,
                    remote: "check-email.php",
                },

            },
            messages:{
                email:'Email address exists.'
            },
            onkeyup: false,
            onblur: true,
      });

     });
</script>

PHP代码是

$email= $_GET['email'];
echo $email;
$path = $_SERVER['DOCUMENT_ROOT'];

include_once $path . '/wp-config.php';
include_once $path . '/wp-load.php';
include_once $path . '/wp-includes/wp-db.php';
include_once $path . '/wp-includes/pluggable.php';
global $wpdb;

$email_exists = $wpdb->get_row('SELECT COUNT(*) as count from reg_form_new WHERE email = "'.$email.'"');

if ( $email_exists->count == 0 ) { echo 'true'; } else { echo 'false'; }

exit; }

php代码正确返回true / false,但由于某种原因它不能与jQuery脚本一起使用。谁能告诉我我做错了什么?感谢

2 个答案:

答案 0 :(得分:4)

如果您希望允许它,则必须完全回显字符串'true',而不是其他任何内容。其他任何内容('false'nullundefined或任何字符串)都将被解释为无效,如果有字符串,则会显示该字符串。

因此,请仔细检查您的php脚本现在只打印'true''false'。您显示的脚本会打印电子邮件,然后是'true''false'。这将始终被解释为false

阅读remote method的文档:

  

响应被评估为JSON,并且必须为true才有效   元素,可以是任何false,undefined或null为无效   元素,使用默认消息;或者一个字符串,例如。 “那个名字是   已经采取,尝试peter123而不是“显示为错误信息。

使用Firebug或Chrome Inspector验证您的回复是否正确。

答案 1 :(得分:0)

我不是Jquery的专家,你可以根据需要调整工作功能:

$.ajax({
            url: "check-email.php",
            type:'GET',
            /*you my specify dataType: 'json', for example ...*/
            data: $("#soutez").serialize(), //email input id 
            success: function(res) { 
                switch(res) {
                    case ('true'):
                        alert("true");  
                        break;

                    case ('false'):
                        alert('false');
                        break;
                                    // other cases...

                }
            } 

      });