1

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

<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 脚本。谁能告诉我我做错了什么?谢谢

4

2 回答 2

4

'true'如果您希望它被允许通过,您必须准确地回显字符串,而不是其他任何东西。其他任何内容('false'nullundefined或任何字符串)都将被解释为无效,如果存在字符串,则将显示该字符串。

因此,请仔细检查您的 php 脚本是否仅打印出来'true'或暂时打印出来'false'。您显示的脚本打印电子邮件,后跟'true'or 'false'。这将始终被解释为false

阅读远程方法的文档:

响应被评估为 JSON 并且对于有效元素必须为 true,并且对于无效元素可以是任何 false、未定义或 null,使用默认消息;或字符串,例如。“该名称已被占用,请尝试 peter123”以显示为错误消息。

使用 Firebug 或 Chrome Inspector 验证您的响应是否正确。

于 2013-06-19T15:32:00.757 回答
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...

                }
            } 

      });
于 2013-06-18T22:49:13.233 回答