首页 > 解决方案 > AngularJS,Codeigniter PHP 然后在 POST 上返回 undefined

问题描述

我正在构建一个 angularjs 应用程序,并且在发布登录数据时遇到了消息返回。

我的登录表单 HTML 如下

<form name="loginfrm">

<div class="form-group" ng-class="{ 'has-error': (loginfrm.email.$dirty || loginfrm.$submitted) && loginfrm.email.$error.required || loginfrm.email.$error.email, 'has-success' : loginfrm.email.$valid }">

    <label>Email</label>
    <input type="email" name="email" class="form-control" value="loginData..email" ng-model="email" required placeholder="Enter Email Address">
    <p class="help-block" ng-show="(loginfrm.email.$dirty || loginfrm.$submitted) && loginfrm.email.$error.required">
        Email Address is required
    </p>
    <p class="help-block" ng-show="(loginfrm.email.$dirty || loginfrm.$submitted) && loginfrm.email.$error.email">
        Invalid Email Address 
    </p>

</div>

<div class="form-group" ng-class="{ 'has-error': (loginfrm.password.$dirty || loginfrm.$submitted) && loginfrm.password.$error.required || loginfrm.password.$error.minlength || loginfrm.password.$error.maxlength , 'has-success' : loginfrm.password.$valid }">

    <label>Password</label>
    <input ng-readonly="readflag" type="password" name="password" class="form-control" ng-model="password" value="loginData..password" required placeholder="Enter Password">

    <p class="help-block" ng-show="(loginfrm.password.$dirty || loginfrm.$submitted) && loginfrm.password.$error.required">
        Password is required
    </p>

</div>

<div class="form-group">
  <input type="button" ng-click="checkdata()" class="btn btn-danger" ng-disabled="loginfrm.$invalid" value="Login" />
</div>

{{alertMessage}}

</form>

然后我的angularjs登录控制器代码如下

app.controller('LoginController', function($scope, $http){
//Function to authenticate
$scope.checkdata = function(){

     var request = $http({
        method: "post",
        url: "/tester.php",
        data: {
            email: $scope.email,
            password: $scope.password
        }
    });

    /* Check whether the HTTP Request is successful or not. */
    request.then(function (data) {
        $scope.alertMessage = "You have login successfully with email " + data;
    });

};

});

然后我的PHP代码如下

<?php

    $postdata = file_get_contents("php://input");
    $request = json_decode($postdata);
    @$email = $request->email;
    @$password = $request->password;

    $msg = 'Invalid';
    echo $msg;
?>

我面临的问题是,当我单击登录时,数据会发布到 php(我已经手动验证过),但返回数据显示“[object Object]”而不是显示输入的电子邮件。

输出参考图像

标签: phpangularjscodeigniter-3

解决方案


推荐阅读