ajax验证不起作用

时间:2013-08-01 08:53:07

标签: php jquery mysql ajax validation

Jquery文件

$(document).ready(function() {
         $('input.textinput3').each(function() {

                $(this).rules("add", 
                    {
                        required: true,                     
                        minlength: 3,
                        remote: "report/user_check.php",

                        messages: {
                            required: "Type Serial number!",                            
                            minlength: jQuery.format("Please, at least {0} character are necessary"),
                            remote: jQuery.format("{0} is already taken"),
                            // remote: 'This email address has already been used'

                        }
                    })
            });  
// initialize the validator
        $('form.warregform').validate();    

});

我的PHP文件

include("db.class1.php");

if (isset($_POST['wproserial'])) {  
    $db = new mysqldb();
    $db->select_db();

    for ( $i=0;$i<count($_POST['wproserial']);$i++) {
        {           
            $wproserial = $_POST['wproserial'][$i];             
        }   
    }

    $query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='mysql_real_escape_string($wproserial)')";

    if($db->num_rows($db->query($query)) < 1) {
       return true;
    }else {
        return false;
    }   
} 

我无法检查现有数据库的验证,此序列号。已注册或未注册。每个输入数据都显示消息“已经被采取”。所以我不能提交。我的Serial no input字段无限制。

我的Html文件

default show
<input name="wproserial[]" id="wproserial0" type="text" value="" class="textinput3 " autocomplete="off">
After Add
<input name="wproserial[]'+i+'" id="wproserial'+i+'" type="text" value="" class="textinput3">

3 个答案:

答案 0 :(得分:1)

更改您的查询

$query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='mysql_real_escape_string($wproserial)')";

到这个

$query = "SELECT * FROM products WHERE SerailNo='".mysql_real_escape_string($wproserial)."'";

答案 1 :(得分:0)

远程验证期望您的服务器端脚本返回json。您应该执行以下操作,而不是仅仅返回truefalse

if($db->num_rows($db->query($query)) < 1) {
    $valid = 'true';
} else {
    $valid = 'false';
}

echo json_encode($valid); 

答案 2 :(得分:0)

试试这个

$query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='".mysql_real_escape_string($wproserial)."')";

代替

$query = "SELECT EXISTS (SELECT * FROM products WHERE SerailNo='mysql_real_escape_string($wproserial)')";