Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用PHP获取JSON数据&;角JS_Javascript_Php_Angularjs - Fatal编程技术网

Javascript 无法使用PHP获取JSON数据&;角JS

Javascript 无法使用PHP获取JSON数据&;角JS,javascript,php,angularjs,Javascript,Php,Angularjs,我正在传递ID以使用Angular JS获取JSON编码数据 这是我的控制器: dhmsApp.controller('dhmsDetailsView',function($scope,$http, $routeParams){ $http.get("include/detailViewBg.php", {params: {id: $routeParams.id}}) .success(function (response) {$scope.details =

我正在传递ID以使用Angular JS获取JSON编码数据

这是我的控制器:

    dhmsApp.controller('dhmsDetailsView',function($scope,$http, $routeParams){
     $http.get("include/detailViewBg.php", {params: {id: $routeParams.id}})
        .success(function (response) {$scope.details = response});
});
下面是我的PHP SELECT查询代码(detailViewBg.PHP),JSON是从该代码中编码的

    <?php
include("../include/connection_string.php");

$id = $_GET['id'];

$sql = mysqli_query($db, "SELECT * FROM dhms_requirement where id='".$id."'");
if(mysqli_num_rows($sql)){ 
    $data = array();
    while($row = mysqli_fetch_array($sql)){
        $data[] = array(
                'id' => $row['id'],
            'rClientName' => $row['rClientName'],
            'rContactNumber' => $row['rContactNumber'],
            'rCompanyName' => $row['rCompanyName'],
            'rEmail' => $row['rEmail'],
            'rRequirement' => $row['rRequirement'],
        );
    }
    header('Content-type: application/json');
    echo json_encode($data);
}

$sqlDomain = mysqli_query($db, "SELECT * FROM dhms_domain_details where id='".$id."'");
if(mysqli_num_rows($sqlDomain)){
    $dataDomain = array();
    while($rowDomain = mysqli_fetch_array($sqlDomain)){
        $dataDomain[] = array(
                'id' => $rowDomain['id'],
            'dSelectDomain' => $rowDomain['dSelectDomain'],
            'dDomainName' => $rowDomain['dDomainName'],
            'dRegisterDomainFrom' => $rowDomain['dRegisterDomainFrom'],
            'dStartDate' => $rowDomain['dStartDate'],
            'dEndDate' => $rowDomain['dEndDate'],
            'dRegistrationFor' => $rowDomain['dRegistrationFor'],
        );
    }
    header('Content-type: application/json');
    echo json_encode($dataDomain);
}



?>

这是我提取数据的HTML页面

 <div class="panel-body" ng-repeat="u in details track by $index">
                    <div class="col-lg-6">
                        <ul class="list-group">
                            <li class="list-group-item"><strong>Req. NO.</strong> : {{u.id}}</li>
                            <li class="list-group-item"><strong>Contact Number</strong> : {{u.rContactNumber}}</li>
                            <li class="list-group-item"><strong>Email Address</strong> : {{u.rEmail}}</li>
                        </ul>
                    </div>
                    <div class="col-lg-6">
                        <ul class="list-group">
                            <li class="list-group-item"><strong>Client Name</strong> : {{u.rClientName}}</li>
                            <li class="list-group-item"><strong>Compnay Name</strong> : {{u.rCompanyName}}</li>
                            <li class="list-group-item"><strong>Requirement</strong> : {{u.rRequirement}}</li>

                        </ul>
                    </div>
                </div>
<div class="panel-body" ng-repeat="u in details track by $index">
            <div class="col-lg-6">
                <ul class="list-group">
                    <li class="list-group-item"><strong>Req. NO.</strong> : {{u.dSelectDomain}}</li>
                    <li class="list-group-item"><strong>dDomainName</strong> : {{u.dDomainName}}</li>
                    <li class="list-group-item"><strong>dRegisterDomainFrom</strong> : {{u.dRegisterDomainFrom}}</li>
                </ul>
            </div>
            <div class="col-lg-6">
                <ul class="list-group">
                    <li class="list-group-item"><strong>dStartDate</strong> : {{u.dStartDate}}</li>
                    <li class="list-group-item"><strong>dEndDate</strong> : {{u.dEndDate}}</li>
                    <li class="list-group-item"><strong>dRegistrationFor</strong> : {{u.dRegistrationFor}}</li>

                </ul>
            </div>
        </div>

  • 请求。编号:{{u.id}
  • 联系电话:{{u.rContactNumber}
  • 电子邮件地址:{{u.rEmail}
  • 客户端名称:{{u.rClientName}
  • 公司名称:{{u.rCompanyName}
  • 要求:{{u.R要求}
  • 请求。编号:{{u.dSelectDomain}
  • dDomainName:{{u.dDomainName}
  • dRegisterDomainFrom:{{u.dRegisterDomainFrom}
  • dStartDate:{{u.dStartDate}
  • dEndDate:{{u.dEndDate}
  • dRegistrationFor:{{u.dRegistrationFor}
它在控制台中显示一个错误。请参见下图

您两次回显了json数据,因此您的响应数据是无效的json

<?php
include("../include/connection_string.php");

$id = $_GET['id'];

$result = [];

$sql = mysqli_query($db, "SELECT * FROM dhms_requirement where id='".$id."'");
if(mysqli_num_rows($sql)){ 
    $data = array();
    while($row = mysqli_fetch_array($sql)){
        $data[] = array(
                'id' => $row['id'],
            'rClientName' => $row['rClientName'],
            'rContactNumber' => $row['rContactNumber'],
            'rCompanyName' => $row['rCompanyName'],
            'rEmail' => $row['rEmail'],
            'rRequirement' => $row['rRequirement'],
        );
    }

    //header('Content-type: application/json');
    //echo json_encode($data);

    //Instead of echo data here, just put it into $result array
    $result['requirement_detail'] = $data;
}

$sqlDomain = mysqli_query($db, "SELECT * FROM dhms_domain_details where id='".$id."'");
if(mysqli_num_rows($sqlDomain)){
    $dataDomain = array();
    while($rowDomain = mysqli_fetch_array($sqlDomain)){
        $dataDomain[] = array(
                'id' => $rowDomain['id'],
            'dSelectDomain' => $rowDomain['dSelectDomain'],
            'dDomainName' => $rowDomain['dDomainName'],
            'dRegisterDomainFrom' => $rowDomain['dRegisterDomainFrom'],
            'dStartDate' => $rowDomain['dStartDate'],
            'dEndDate' => $rowDomain['dEndDate'],
            'dRegistrationFor' => $rowDomain['dRegistrationFor'],
        );
    }

    //header('Content-type: application/json');
    //echo json_encode($dataDomain);

    //Put this $dataDomain into $result array also.
    $result['domain_data'] = $dataDomain;
}


//Echo json data finally.
header('Content-type: application/json');
echo json_encode($result);

?>

并更新您的html部分

<!--<div class="panel-body" ng-repeat="u in details track by $index">-->
<!-- Careful the details.requirement_detail -->
<div class="panel-body" ng-repeat="u in details.requirement_detail track by $index">
                    <div class="col-lg-6">
                        <ul class="list-group">
                            <li class="list-group-item"><strong>Req. NO.</strong> : {{u.id}}</li>
                            <li class="list-group-item"><strong>Contact Number</strong> : {{u.rContactNumber}}</li>
                            <li class="list-group-item"><strong>Email Address</strong> : {{u.rEmail}}</li>
                        </ul>
                    </div>
                    <div class="col-lg-6">
                        <ul class="list-group">
                            <li class="list-group-item"><strong>Client Name</strong> : {{u.rClientName}}</li>
                            <li class="list-group-item"><strong>Compnay Name</strong> : {{u.rCompanyName}}</li>
                            <li class="list-group-item"><strong>Requirement</strong> : {{u.rRequirement}}</li>

                        </ul>
                    </div>
                </div>
<!--<div class="panel-body" ng-repeat="u in details track by $index">-->
<!-- Careful the details.domain_data-->
<div class="panel-body" ng-repeat="u in details.domain_data track by $index">
            <div class="col-lg-6">
                <ul class="list-group">
                    <li class="list-group-item"><strong>Req. NO.</strong> : {{u.dSelectDomain}}</li>
                    <li class="list-group-item"><strong>dDomainName</strong> : {{u.dDomainName}}</li>
                    <li class="list-group-item"><strong>dRegisterDomainFrom</strong> : {{u.dRegisterDomainFrom}}</li>
                </ul>
            </div>
            <div class="col-lg-6">
                <ul class="list-group">
                    <li class="list-group-item"><strong>dStartDate</strong> : {{u.dStartDate}}</li>
                    <li class="list-group-item"><strong>dEndDate</strong> : {{u.dEndDate}}</li>
                    <li class="list-group-item"><strong>dRegistrationFor</strong> : {{u.dRegistrationFor}}</li>

                </ul>
            </div>
        </div>

  • 请求。编号:{{u.id}
  • 联系电话:{{u.rContactNumber}
  • 电子邮件地址:{{u.rEmail}
  • 客户端名称:{{u.rClientName}
  • 公司名称:{{u.rCompanyName}
  • 要求:{{u.R要求}
  • 请求。编号:{{u.dSelectDomain}
  • dDomainName:{{u.dDomainName}
  • dRegisterDomainFrom:{{u.dRegisterDomainFrom}
  • dStartDate:{{u.dStartDate}
  • dEndDate:{{u.dEndDate}
  • dRegistrationFor:{{u.dRegistrationFor}
为什么要这样做?

  • 当您发布问题时:

    echo json_encode($data)在<代码>之后,从dhms\U要求中选择*

    然后,再一次

    echo json_encode($dataDomain)
    从dhms\u域\u详细信息中选择*

    因此,您的响应数据应该如下所示:

    […][…]

    这是无效的json数据,正如您在控制台中看到的错误

  • 更新php后,我将两个select result包装到
    $result
    数组中,因此您的响应数据如下所示:

    {“需求详细信息”:[…],“域数据”:[…]}

  • 在html模板中循环时,对细节的引用(即响应数据)分为两部分,第一部分使用
    detail.requirement\u detail
    ,第二部分使用
    domain\u data


  • 应该可以工作。

    你能检查我提取数据的html部分吗。。实际上,当我添加您的解决方案时,控制台中的错误消失了,但数据并没有打印到html部分。你能检查一下我的代码在哪里吗?在我的问题中,我添加了HTML。请在问题中检查。谢谢你这么多朋友的大力支持。。它对我有用。。。我可以在我的html文件中看到数据。。。