Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 AngularJs-无法从外部文件获取数据_Javascript_Php_Angularjs_Json_Angular Ui Bootstrap - Fatal编程技术网

Javascript AngularJs-无法从外部文件获取数据

Javascript AngularJs-无法从外部文件获取数据,javascript,php,angularjs,json,angular-ui-bootstrap,Javascript,Php,Angularjs,Json,Angular Ui Bootstrap,无法从PHP文件和JSON文件获取数据 timesheet.php require 'dbconnect.php'; $array_data = array(); $query = "SELECT * FROM timesheet"; $stmt = $conn->prepare($query); $stmt->execute($array_data); $result_data = $stmt->fetchAll( PDO::FETCH_ASSOC ); if( !em

无法从PHP文件和JSON文件获取数据

timesheet.php

require 'dbconnect.php';

$array_data = array();
$query = "SELECT * FROM timesheet";

$stmt = $conn->prepare($query);
$stmt->execute($array_data);
$result_data = $stmt->fetchAll( PDO::FETCH_ASSOC );

if( !empty($result_data) ) {    

    header('Content-type: application/json');
    $json = json_encode($result_data);
    // echo $json;
    echo preg_replace("/null/", '""', $json); // replace null to ""

}
timesheet.json

[
    {
        "id": 1,
        "date": "20th August 2016",
        "day": "Sat",
        "in1": "10:30",
        "out1": "02:30",
        "in2": "04:00",
        "out2": "08:00",
        "in3": "",
        "out3": "",
        "total_hours": "8:00",
        "status": "1"
    },
    {   
        "id": 2,
        "date": "20th August 2016",
        "day": "Sat",
        "in1": "10:30",
        "out1": "02:30",
        "in2": "04:00",
        "out2": "08:00",
        "in3": "",
        "out3": "",
        "total_hours": "8:00",
        "status": "1"
    }
    ...
]
controller.js

.controller('tableCtrl', function($filter, $sce, ngTableParams, tableService) {

        var data = tableService.data
    //Editable
        this.tableEdit = new ngTableParams({
            page: 1,            // show first page
            count: 10           // count per page
        }, {
            total:data.length, // length of data
            getData: function($defer, params) {
                $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
            }
        });
    })
script.js

.service('tableService', ['$http', function($http){

        this.data = $http.get("data/timesheet.php")
        //this.data = $http.get("data/timesheet.json")

    }])
html


{{w.id}}
...

当我像这样将json数据放入service.js中时。data=[{..}]可以工作,但现在我需要从外部文件获取数据,外部文件可以是json文件或PHP文件,但它不工作,因为我得到的是空表。有人能帮我吗?我对AngularJs非常陌生

尝试使用成功和错误函数作为回调函数来实现此功能:


在该页面的底部有一个JSON响应示例。首先,如果您在浏览器中请求该php文件,是否可以将其放在问题中(以查看输出)

尝试使用success and error函数作为回调函数使其正常工作:


在该页面的底部有一个JSON响应示例。首先,如果您在浏览器中请求该php文件,是否可以将其放在问题中(以查看输出)

我认为您正在尝试访问一个尚不存在的文件。因此,您应该对该php文件使用promise或callback,因为只有在php完成处理之后,数据才准备就绪。它与JSON一起工作,因为数据是静态的,随时可用,但是php需要从db计算数据并创建JSON响应(与JSON内容相同),但这需要时间。Http请求不会立即返回。这是一个异步调用,必须以不同的方式进行处理。()@DincaAdrian它也不能使用timesheet.json。只有当我直接在service.js中写入json数据时,它才起作用。请您提供一些示例代码,说明如何在此处使用承诺或回调?@VladimirM OK!但是你能告诉我怎么处理吗?我对此一无所知。@User7您是否关注了我附加在评论上的链接?这里有一个角度get请求的示例。它回报了一个承诺。如果你打算在你的项目中使用angular,你真的需要阅读关于这些的文档。我认为你正在试图访问一个还不存在的文件。因此,您应该对该php文件使用promise或callback,因为只有在php完成处理之后,数据才准备就绪。它与JSON一起工作,因为数据是静态的,随时可用,但是php需要从db计算数据并创建JSON响应(与JSON内容相同),但这需要时间。Http请求不会立即返回。这是一个异步调用,必须以不同的方式进行处理。()@DincaAdrian它也不能使用timesheet.json。只有当我直接在service.js中写入json数据时,它才起作用。请您提供一些示例代码,说明如何在此处使用承诺或回调?@VladimirM OK!但是你能告诉我怎么处理吗?我对此一无所知。@User7您是否关注了我附加在评论上的链接?这里有一个角度get请求的示例。它回报了一个承诺。如果您计划在项目中使用angular,您确实需要阅读有关这些的文档。
<table ng-table="tctrl.tableEdit" class="table table-striped table-vmiddle">
       <tr ng-repeat="w in $data"  ng-class="{ 'active': w.$edit }">
          <td data-title="'ID'">
             <span ng-if="!w.$edit">{{ w.id }}</span>
             <div ng-if="w.$edit"><input class="form-control" type="text" ng-model="w.id" /></div>
          </td>
          ...
       </tr>                        
   </table>