Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax jQuery中的远程验证未验证_Ajax_Json_Validation_Jquery Mobile - Fatal编程技术网

Ajax jQuery中的远程验证未验证

Ajax jQuery中的远程验证未验证,ajax,json,validation,jquery-mobile,Ajax,Json,Validation,Jquery Mobile,此表单将在my MYSQL数据库中插入电子邮件和密码 首先,我试图远程验证电子邮件,以确保它不存在,并且 Pswd和Pswd2相等 脚本将写入数据库,但验证不起作用。我对JQ和Ajax还不熟悉,所以任何帮助都会受到欢迎。 谢谢 表格: <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" /> <script src="http:

此表单将在my MYSQL数据库中插入电子邮件和密码

首先,我试图远程验证电子邮件,以确保它不存在,并且 Pswd和Pswd2相等

脚本将写入数据库,但验证不起作用。我对JQ和Ajax还不熟悉,所以任何帮助都会受到欢迎。 谢谢

表格:

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
    <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
    <script src="jquery.validate.js" type="text/javascript"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.min.js"></script>

   ... 
        <div data-role="content">
             <form  id="AddUser" class="ui-body ui-body-a ui-corner-all" data-ajax="true" >
                    <fieldset>
                        <div data-role="fieldcontain">
                            <label for="Email">Email Address:</label>
                            <input id="Email" type="email" />
                        <label for="Pswd">Password:</label>
                            <input id="Pswd" type="password" /> 
                        <label for="Pswd2">Confirm Password:</label>
                            <input id="Pswd2" type="password" />    
                        </div>
                        <button type="submit" id="submit" data-theme="b" name="submit" value="submit-value">Submit</button>
                    </fieldset>
        </form>     
        </div>

...

... 
电邮地址:
密码:
确认密码:
提交
...
以下是文档中的js:

 <script>
    $(document).ready(function() { 

        var validator = 
        $('#AddUser').validate({ 
            rules: { 
                Pswd: { 
                    required: true, 
                }, 
                Pswd2: { 
                    required: true, 
                    equalTo: "#Pswd" 
                }, 
                Email: { 
                   required: true, 
                   email: true, 
                   remote: "process/ValidateEmail.php" 
                }
            }, 
            messages: { 
                Pswd: { 
                    required: "Provide a password", 
                }, 
                Pswd2: { 
                    required: "Repeat your password", 
                    equalTo: "Enter the same password as above" 
                }, 
                Email: { 
                    required: "Not A Valid Email Address", 
                    remote: "already in use"
                }
             }
        }); // end var validator

            if (validator)
            {
                $("#AddUser").submit(function(){        
                //make Variables
                var emailVar =$('input[id=Email]').val();
                var pswdVar = $('input[id=Pswd]').val();
                var pswdconfirm = $('input[id=Pswd2]').val();
                var querystring = "Email="+emailVar+"&Pswd="+pswdVar;

                $.post("process/AddUser.php",querystring);

            }); //end submit()
            }; // end if validator


    }); //end ready()

    </script>

$(文档).ready(函数(){
var验证器=
$('#AddUser')。验证({
规则:{
Pswd:{
要求:正确,
}, 
Pswd2:{
要求:正确,
equalTo:“Pswd”
}, 
电邮:{
要求:正确,
电子邮件:是的,
远程:“process/ValidateEmail.php”
}
}, 
消息:{
Pswd:{
必需:“提供密码”,
}, 
Pswd2:{
必需:“重复您的密码”,
equalTo:“输入与上述相同的密码”
}, 
电邮:{
必需:“不是有效的电子邮件地址”,
远程:“已在使用中”
}
}
});//结束变量验证程序
if(验证器)
{
$(“#AddUser”).submit(函数(){
//制造变量
var emailVar=$('input[id=Email]')。val();
var pswdVar=$('input[id=Pswd]')。val();
var pswdconfirm=$('input[id=Pswd2]')。val();
var querystring=“Email=“+emailVar+”&Pswd=“+pswdVar;
$.post(“process/AddUser.php”,querystring);
});//结束提交()
};//如果验证程序
}); //结束就绪()
验证器文件(ValidateEmail.php)


经过一些研究后,我回到代码中,发现它在js和php验证中都充满了错误:

<script>
    $(document).ready(function()
  {

    var validator = $("#AddUser").validate({
        rules: {
            Email: {
                required: true,
                email: true,
                remote: "process/ValidateEmail.php"
            },
            Pswd: {
                required: true,
            },
            Pswd2: {
                required: true,
                equalTo: "#Pswd"
            },
        },
        messages: {
            Pswd: {
                required: "Provide a password",
            },
            Pswd2: {
                required: "Repeat your password",
                equalTo: "Password Mismatch"
            },
            Email: {
                required: "Invalid Email",
                remote: jQuery.format("{0} is already used")
            }
        },
        // the errorPlacement has to take the table layout into account
        errorPlacement: function(error, element) {

                error.appendTo(element.parent().next());
        },
        // specifying a submitHandler prevents the default submit, good for the demo
        submitHandler: function() {         

            //make Variables
            var emailVar =$('input[id=Email]').val();
            var pswdVar = $('input[id=Pswd]').val();
            var pswdconfirm = $('input[id=Pswd2]').val();
            var querystring = "Email="+emailVar+"&Pswd="+pswdVar;

            $.post("process/AddUser.php",querystring);

            $('#AddUser').clearForm();
        return false;

        },
        // set this class to error-labels to indicate valid fields
        success: 

            function(label) {
            label.html("&nbsp;").addClass("checked");

        }
        });
    }); 
</script>

$(文档).ready(函数()
{
var验证程序=$(“#AddUser”).validate({
规则:{
电邮:{
要求:正确,
电子邮件:是的,
远程:“process/ValidateEmail.php”
},
Pswd:{
要求:正确,
},
Pswd2:{
要求:正确,
equalTo:“Pswd”
},
},
信息:{
Pswd:{
必需:“提供密码”,
},
Pswd2:{
必需:“重复您的密码”,
equalTo:“密码不匹配”
},
电邮:{
必需:“无效电子邮件”,
远程:jQuery.format(“{0}已被使用”)
}
},
//errorPlacement必须考虑表格布局
errorPlacement:函数(错误,元素){
error.appendTo(element.parent().next());
},
//指定submitHandler会阻止默认提交,这对演示很有好处
submitHandler:函数(){
//制造变量
var emailVar=$('input[id=Email]')。val();
var pswdVar=$('input[id=Pswd]')。val();
var pswdconfirm=$('input[id=Pswd2]')。val();
var querystring=“Email=“+emailVar+”&Pswd=“+pswdVar;
$.post(“process/AddUser.php”,querystring);
$('#AddUser').clearForm();
返回false;
},
//将此类设置为错误标签以指示有效字段
成功:
功能(标签){
label.html(“”.addClass(“选中”);
}
});
}); 
php必须如下所示:

$email= $_POST['email'];
include 'connect.php';
$email = trim(mysql_real_escape_string($email));
$query = mysql_query("SELECT COUNT(id) FROM users WHERE email = '$email'") or die(mysql_error());
echo (mysql_result($query, 0) == 1) ? 'false' : 'true';

注意不要只回显false或true必须像这样回显'false'或true

解决了它:我回到公式,在验证中发现了一些错误。php还有if(验证)不正确
            email: { 
            required: true, 
            email: true, 
            remote: {
                url: "check-email.php",
                type: "post",
                data: {
                    email: function() {
                        return $("[name='email']").val();
                    }
                }
            }
          },
$email= $_POST['email'];
include 'connect.php';
$email = trim(mysql_real_escape_string($email));
$query = mysql_query("SELECT COUNT(id) FROM users WHERE email = '$email'") or die(mysql_error());
echo (mysql_result($query, 0) == 1) ? 'false' : 'true';