在CakePHP框架上使用getJSON()
我使用AJAX检查数据库中是否有用户名。以下是控制器代码:在CakePHP框架上使用getJSON(),php,jquery,ajax,json,cakephp,Php,Jquery,Ajax,Json,Cakephp,我使用AJAX检查数据库中是否有用户名。以下是控制器代码: public function check_username(){ if($this->request->is('json')){ $user = $this->User->find('count', array('conditions' => array('username' => $this->request->data['username'])));
public function check_username(){
if($this->request->is('json')){
$user = $this->User->find('count', array('conditions' => array('username' => $this->request->data['username'])));
if($user === 0)
echo '1';
else
echo false;
}
$this->autoRender = false;
}
我在视图中使用了AJAX。没关系,现在我尝试使用Json,并将控制器代码更改为:
public function check_username(){
if($this->request->is('json')){
$user = $this->User->find('count', array('conditions' => array('username' => $this->request->data['username'])));
echo json_encode($user);
}
$this->autoRender = false;
}
这是我的视图代码。这不起作用。未出现警报:
var un = $('#username').val();
$.getJSON(
'/oes/users/check_username',
{username:un},
function(result){
alert(result);
});
现在请任何人帮我使它工作。我也是Json新手。
提前谢谢
public function check_username(){
if($this->request->is('json')){
$user = $this->User->find('count', array('conditions' => array('username' => $this->request->data['username'])));
echo json_encode($user);
exit;
}
$this->autoRender = false;
}
如果它工作,问题来自加载视图,因为autoRender=false 不熟悉CAKE…但如果$this->request->是'json',这看起来很可疑{您没有发送任何json,也没有发送任何get-param json。请在浏览器控制台中检查请求是否发出、状态、响应等。感谢您考虑到我的问题,尽管您不熟悉CakePHP。$this->request->is'json'只检查请求是否为json。我也尝试过对此进行评论。您能告诉我答案吗w php方式?您在控制台中检查了请求吗?需要知道是哪一端导致了问题,或者两者兼而有之。不,我不能使用控制台。这不仅仅出现在控制台窗口中。那么我该怎么办?您的代码充满了错误。请阅读CakePHP手册。