Php函数将空json返回给Ajax

时间:2014-03-14 10:13:28

标签: php jquery sql ajax

我使用ajax来检查用户是否第一次登录:

$.ajax({
  url: '/checkFirstLogin.php',
  type: 'post',
  dataType: 'json',
  data: {'user_id': userId},
  success: function(data) {
          if(data == 'firstTime') {

                 showWelcome();//this open a popup
           }else{

                alert('been here before');
           }
        },//end success
}); // end ajax call

checkFirstLogin.php只是这样做:

<?php require 'core/init.php';


        $user_id = filter_var($_POST['user_id'], FILTER_SANITIZE_NUMBER_INT);
            $myUser = new User($user_id);


                    $myUser->checkFirstLogin();

                            if($myUser){

                                $response = 'firstTime';

                                    echo json_encode($response);


                                        }else{

                                            $response = 'beenHere';


                            echo json_encode($response);

                                        }

用户:: checkFirstLogin():

   public function checkFirstLogin(){

   $sth = $this->_db->prepare("SELECT COUNT(user_id) FROM users WHERE first_login = '0' AND user_id= ? ");
   $sth->bindParam(1, $this->data()->user_id, PDO::PARAM_INT);
   $sth->execute();
   $data_exists = ($sth->fetchColumn() > 0) ? true : false;

     return $data_exists;
}

即使数据库中的first_time = 1,json响应总是“firstTime”。

enter image description here

1 个答案:

答案 0 :(得分:3)

您正在检查$myUser,而不是功能的实际返回值;你的意思可能就是这样;

$is_new_user = $myUser->checkFirstLogin();

if($is_new_user) {
    $response = 'firstTime';

...