jquery连接oop功能?

时间:2015-06-10 05:49:34

标签: php jquery oop

classvalidation.php

<?php
class Validation{

public function __construct(){
    $this->ajax_livecheck();
}

public function ajax_livecheck(){
   // this connection have no problem i had the data if i load this.
   //checking the mysql database for existed data
}

}
$Validation = new Validation();
?>

register.php

jquery-1.9.0.min.js

<script>
    //live validation name jquery
    $(document).ready(function() {
        $("#reg-username").keyup(function (e) {

                //removes spaces from username
                $(this).val($(this).val().replace(/\s/g, ''));

                var username = $(this).val();
                if(username.length < 4){$("#user-result").html('');return;}

                if(username.length >= 4){
                    $("#user-result").html('<img src="imgs/ajax-loader.gif" />'); 

                    //if i am not using oop style it work , how should i connect this to oop?
                    $.post('/class/classvalidation.php', {'username':username}, function(data) {

                      $("#user-result").html(data);
                    });
                }
            }); 
        });
    </script>

    <input type="text" name="username" id="reg-username"  placeholder="Username" autocomplete="off"/><br>
<span id="user-result"></span>

这是一个实时名称检查验证,所以基本上它检查了数据库是否有任何名称退出。

如果我使用普通的php风格,这段代码可以工作。在我改变为oop风格后它失败了,我无法弄清楚如何连接jquery。

类似$.post("<? $Validation->ajax_livecheck(); ?>")类似于连接函数的东西吗?

1 个答案:

答案 0 :(得分:0)

<?php
class Validation {    
   public function ajax_livecheck(array $data){
      if ( ! isset($data['username']) {
         return false;          
      }

      if ( $exists_in_database) {
         return false;
      }

      return true;
   }
}
$Validation = new Validation();
$result = $Validation->ajax_livecheck($_POST);

echo json_encode(array(
   'username_is_valid' => $result
));
?>

然后你可以检查你的javascript结果并做你需要做的事情。