使用angularjs和JSON从数据库中获取数据

时间:2016-02-19 07:00:47

标签: javascript php mysql angularjs json

嗨iam尝试使用angularjs从数据库中获取数据,但它没有显示任何数据。我刚开始学习AngularJs.Can任何人都帮我这个。这就是我的代码

income.html

<div class="container jumbotron"  ng-init= "getIncomeSource()" ng-controller="IncomeSourcesController" id="homejumbotron">
<table>
    <thead>
        <th>Name of the Employer</th>
        <th>Income From Salary</th>
        <th>TDS Deducted</th>
        <th></th>
    </thead>
    <tbody>
        <tr ng-repeat="x in incomesources" >

    <td>{{x.company_name}}</td>
    <td>{{x.user_income}}</td>
    <td>{{x.tax_deducted_salary}}</td>


    </tbody>

JS

var app = angular.module('accountantApp', []);
app.controller('IncomeSourcesController', function($scope,$http) {
console.log("inside homecontroller:::");    
$scope.getIncomeSource = function(){
$scope.user = "";
console.log("Inside getPersonalInfo::::::");    
$http({
        method  : 'POST',
         url        : '../model/incomesources.php',           
        headers : {
                    'Content-Type': 'application/json'
                  },
              data      : {"action": "GetIncomeSources"}
       })
       .success(function( data,status, headers) {
        console.log("Response data:"+ JSON.stringify(data));
        if (data.success != undefined && data.success != '')
        {
          $scope.user = data;
        }
        })
        .error(function(data, status, headers) {
        alert("Error occured while retrieving:"+status);
        console.log("Error data::::"+ data);
        console.log("status::::"+ status);
        });             
};  
});

incomesources.php

function getIncomeSources()
{
session_start();
 $userInfo = $_SESSION['USER'];
 $userEmailid= $userInfo-> getEmailid();
 $res="SELECT *  FROM user_salary_details  WHERE email ='$userEmailid'";
 $result=mysql_query($res);            
 if ($row = mysql_fetch_assoc($result))
  {
     $companyname  = $row["company_name"];
     $userincome = $row["user_income"];
     $employetype   = $row["employe_type"];
     $tan     = $row["tan_employer"];
     $tax = $row["tax_deducted_salary"];
     $address = $row["address"];
     $state = $row["state"];
     $city=$row["city"];
     $pin=$row["pincode"];
     $data = array(
                    "success"   =>  "success",
                "companyname"   =>  $companyname,
                    "userincome"    =>  $userincome,
                "employetype"   =>  $employetype,
                "tan"   =>  $tan,
                    "tax"   =>  $tax,
                    "address"    =>      $address,
                    "state"   =>      $state,
                     "city" =>$city,
                     "pin"=>$pin,
              );

     echo json_encode($data);         
     }else{
        echo "No record exists for this user::";            
     }   
}

1 个答案:

答案 0 :(得分:0)

你的incomesources.php最初是否有效?

select语句中的WHERE子句正在查找email ='$ userEmailid'

我想你想要$ userEmailid的内容。所以尝试改为

$res="SELECT *  FROM user_salary_details  WHERE email ='". $userEmailid ."'";

修改 由于您的php文件正常工作,并且您在上面的注释中提到您可以在控制台中看到返回值,让我们看看您的html和js代码。

在你的HTML中请转到

<tr ng-repeat="x in user" >

    <td>{{x.companyname}}</td>
    <td>{{x.userincome}}</td>
    <td>{{x.tax}}</td>

{{x.something}}中的属性基于php返回属性,而不是数据库列名。

在你的js文件中,尝试初始化$ scope.getIncomeSource函数外的$ scope.user并将其作为数组初始化。例如

console.log("inside homecontroller:::");   

$scope.user = []; // this

$scope.getIncomeSource = function(){

console.log("Inside getPersonalInfo::::::");    
$http({

希望这个帮助