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(); ?>")
类似于连接函数的东西吗?
答案 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结果并做你需要做的事情。