It does not return variables -

0

Good morning. I try to login and capture mysql base data in app with ionic and angular. But I can not get the response records. This the controller code of the app:

.controller('loginCtrl', function($scope,$http,$ionicPopup,$state,$ionicHistory) {
    $scope.user_details = {};

    $scope.login = function() {
        str="http://mihostingweb/lib/user_details.php?e="+$scope.user.usuario+"&p="+$scope.user.password;
        $http.get(str)
        .success(function (records){

            $scope.user_details = records;

            sessionStorage.setItem('loggedin_nombre', $scope.user_details.u_nombre);
            sessionStorage.setItem('loggedin_id', $scope.user_details.u_id );
            sessionStorage.setItem('loggedin_puntos', $scope.user_details.u_puntos);
            sessionStorage.setItem('loggedin_rol', $scope.user_details.u_rol);
            sessionStorage.setItem('loggedin_usuario', $scope.user_details.u_usuario);
            sessionStorage.setItem('loggedin_habilitado', $scope.user_details.u_habilitado);

            $ionicHistory.nextViewOptions({
                disableAnimate: true,
                disableBack: true
            });
            lastView = $ionicHistory.backView();
            console.log('Last View',lastView);
            if(lastView.stateId=="checkOut"){ $state.go('checkOut', {}, {location: "replace", reload: true}); }
            else{$state.go('profile', {}, {location: "replace", reload: true});}

        })
        .error(function() {
                var alertPopup = $ionicPopup.alert({
                    title: 'Acceso Incorrecto!',
                    template: 'Por favor verifique los datos que ha ingresado.'
                });
        });
    };

})

The webservice where the app points, in my host, has this code, and I have tried using var_dump that returns the necessary code.

 <?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");


if(isset($_GET["e"]) && isset($_GET["p"]) ){
    if( !empty($_GET["e"])  && !empty($_GET["p"])  ){

        include('db.class.php');
        $db = new DB();

        $usuario = $_GET["e"];
        $clave   = $_GET["p"];

        // Para evitar Inyecciones MySQL
        $usuario = stripslashes($usuario);
        $clave = stripslashes($clave);

        $query = $db->query("select * from usuario where (usuario = '$usuario') and (clave = md5('$clave'))");
        $outp = "";

        if($query->numRows() == 0){
            return(false);
        }
        else{
            $field = $query->fetchRow();
            if ($outp != "") {$outp .= ",";}
            $outp .= '{"u_nombre":"'  . $field->nombre . '",';
            $outp .= '"u_id":"'   . $field->id . '",';
            $outp .= '"u_usuario":"'   . $field->usuario . '",';
            $outp .= '"u_habilitado":"'   . $field->habilitado  . '",';
            $outp .= '"u_rol":"'. $field->rol  . '",';
            $cliente = $field->id;
            $accion = '50';
            $parametros = 'movil';
            $db->query("insert into log (fecha,usuario,accion,parametros) values (".time().",".$cliente.",$accion,'$parametros')");
        }

        $query2 = $db->query("select sum(tipo_transaccion * cantidad_puntos) as puntos from transaccion where (cliente = $cliente)");
        if($query2->numRows() == 0){
            return(false);
        }
        else{
            $field2 = $query2->fetchRow();
            $outp .= '"u_puntos":"'  . $field2->puntos . '"}';
        }

        $outp ='{"records":['.$outp.']}';

        echo($outp);
    }
 }

?> 
    
asked by Juan Pedro 20.02.2017 в 05:37
source

1 answer

0

It's because you're making an asynchronous call. Here I answered more detailed in case it helps you explained what is necessary to resolve your question as well.

Using promises ( $ q) in $ http

    
answered by 21.02.2017 в 17:33