【问题标题】:Jquery validator weird behaviour with remoteJquery 验证器与远程的奇怪行为
【发布时间】:2014-01-23 15:35:56
【问题描述】:

我有一个使用 jQuery 验证器的注册表单:

$('reg_form').validate({
  ignore:"",
  rules : {
    user_name : {
      required :1,
      minlength :8,
      remote :"check_user_name.php"
    },
    password : {
      required :1,
      minlength :8,
    },
    firstname : {
      required :1,
    },
    lastname : {
      required :1,
    },
    email : {
      required :1,
    },
  }
});

它工作得很好,但问题很遥远。它永远不会检测用户名是否已经在数据库中。

远程代码如下:

$uname = $_GET["user_name"];

$UserObj = new User();
echo $UserObj->checkUniqueUser($uname);

checkUniqueUser() 将检查是否存在同名用户,否则返回 false。

我从请求监视中获得了 URL

http://project.localhost/check_user_name.php?user_name=admin

我热链接了 URL,它显示为 false,因为管理员已经在数据库中,如果我更改为其他内容,它显示为 true(当然它在数据库中不存在)

有人可以帮我吗?希望我能够清楚地说明我到目前为止所做的事情以及我面临的问题。

这是我在 User 类中的函数。

public function checkUniqueUser($username){
      $return = true ;
      global $db ;
      $db->query("select iduser from user where 
      user_name = '".$this->cleanInput($username)."'");
      if($db->numRows() > 0 ){
        $return = false ;
      }
      return $return ;
}

【问题讨论】:

  • 我认为您的问题出在User 类方法checkUniqueUser 中。你能粘贴那个方法的代码吗?如果您不这样做,我们将无法解决这个问题。如果您粘贴一个有效用户并且它抛出 false,并且一个无效用户抛出 true,那么问题是验证不正确,或者被交换。

标签: javascript php jquery jquery-validate


【解决方案1】:

因为你想要一个输出,你需要从你的函数中echotruefalse,而不是return。从技术上讲,return 无处可去。

请参阅 PHP returnPHP echo

public function checkUniqueUser($username){
      $return = true ;
      global $db ;
      $db->query("select iduser from user where 
      user_name = '".$this->cleanInput($username)."'");
      if($db->numRows() > 0 ){
        $return = false ;
      }
      echo $return ;  // echo (output) true or false
}

【讨论】:

  • 酷它工作!我撞了一会儿头:)
  • 还阅读了我可能需要使用的其他帖子 echo json_encode();我会试试看。
  • @user3228222,是的,输出必须是有效的 JSON,但是,AFAIK,我认为布尔值并不重要。 jQuery Validator 还接受一个字符串,该字符串将成为错误消息,并且必须是 JSON。 (您必须有一定数量的代表才能投票。)
  • @user3228222,你15岁以后随时可以回来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 2010-12-17
  • 1970-01-01
相关资源
最近更新 更多