javascript - 带有远程的 Jquery 验证器奇怪行为

标签 javascript php jquery jquery-validate

我有一个使用 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,否则返回 true。

我从请求 watch 得到了 URL

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

我热链接了 URL,它显示错误,因为管理员已经在数据库中,如果我更改为其他内容,它显示为 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 ;
}

最佳答案

因为你想要一个输出,你需要从你的函数中echo truefalse,而不是返回。从技术上讲,没有地方可以返回

参见 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
}

关于javascript - 带有远程的 Jquery 验证器奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312687/

相关文章:

javascript - TypeError : $. url 不是函数

javascript - 无法在 core.js 文件中设置未定义的属性 'value'

javascript - 如果 CSS 位置稍后设置为静态以外的任何值,则 jQuery 位置方法返回不同的值

javascript - 根据子绝对div调整父div高度

javascript - 数据表导出为 pdf 和 excel(带图像)

php - Mysql查询按日期分隔的元素组

php - SonataAdminBundle 内嵌表单 sonata_admin_type 问题

PHP - 获取数字中的数字长度

javascript - 什么是窗口重绘的 jQuery 事件?

javascript - 没有 jquery 的 Angular