【问题标题】:jquery connect oop function?jquery连接oop函数?
【发布时间】:2015-08-25 05:12:09
【问题描述】:

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();
?>

注册.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("&lt;? $Validation-&gt;ajax_livecheck(); ?&gt;") 之类的连接函数?

【问题讨论】:

  • 您从控制台收到任何错误?
  • 不,但实时验证继续显示 ajax 加载器图像

标签: php jquery oop


【解决方案1】:
<?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 中检查结果并做你必须做的事情。

【讨论】:

  • 这是一个非常糟糕的糟糕设计
  • 是让他走上正轨,而不是给他写一个验证框架
  • 但是为什么,你一开始真的给 OP 一个糟糕的 oops 设计。
  • 我使用了给定的类结构。目标是验证给定的用户名是否有效并且数据库中不存在。看起来 op 对面向对象编程来说是新的,所以没有必要让事情变得过于复杂。顺便说一句,这只是 oop 而不是 oops
  • 真正的伙伴,我的坏“oop”:P
猜你喜欢
  • 2014-04-28
  • 2014-11-01
  • 1970-01-01
  • 2014-01-11
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
相关资源
最近更新 更多