【问题标题】:AngularJS - PHP doesn't return valuesAngularJS - PHP 不返回值
【发布时间】:2016-12-08 02:58:18
【问题描述】:

我最近决定学习 AngularJS,我目前正在尝试使用 PhpStorm 制作一个简单的网站。我偶然发现了一个我似乎无法解决的问题。

这是目前网站的代码。

view.html

<button ng-click="doClick()">Click</button>

<table>
    <tr>
        <th>ID</th>
        <th>Condition</th>
    </tr>
    <tr ng-repeat="x in items track by $index">
        <td>{{ x.id }}</td>
        <td>{{ x.condition }}</td>
    </tr>
</table>

view.js

'use strict';

angular.module('myApp.view', ['ngRoute'])
    .config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/view', {
            templateUrl: 'view/view.html',
            controller: 'ViewCtrl'
        });
    }])

    .controller('ViewCtrl', ['$scope', '$http',
        function($scope, $http) {
            $scope.doClick = function() {
                $http({
                    method: 'GET',
                    url: 'view/view.php'
                }).then(function(response) {
                    $scope.items = response.data;
                })
            };
        }
    ]);

view.php

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

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";

$connect = mysqli_connect($servername, $username, $password, $dbname);

if(!$connect) {
    die("Connection failed: " . mysqli_connect_error());
}

$query = "SELECT * FROM table";
$result = mysqli_query($connect, $query);

if(mysqli_num_rows($result) > 0) {
    $output = array();

    while($row = mysqli_fetch_assoc($result)) {
        $output[] = $row;
    }

    echo json_encode($output);
}

else {
    echo "No Results";
}
?>

我想从变量$output 中获取值。但是,一旦我运行 PHP 代码,它只会返回整个代码。它似乎无法将我的 PHP 文件识别为 PhpStorm 中的代码,但在通过 "localhost/view.php" 访问它时运行良好。

我已经尝试过类似线程的解决方案,但到目前为止没有运气。我正在使用 Apache 和 MySQL,如果这很重要的话。任何帮助将不胜感激!

【问题讨论】:

  • 在你的角度控制器中使用 localhost/view.php 而不是 view/view.php
  • 要添加到@Ayaou 评论 - 您需要通过本地主机安装运行该站点,通常位于 localhost - 如果您想使用不同的 url(例如 view),你需要编辑你的虚拟主机文件(但如果你在localhost运行它会更简单)
  • “它似乎无法将我的 PHP 文件识别为 PhpStorm 中的代码...” 是什么意思?当它不起作用时,您在浏览器中看到什么 URL?浏览器的开发工具对被调用的 URL 有何评价?
  • 将路径更改为“localhost/view.php”解决了问题。现在我感觉自己像个新手。谢谢你们,伙计们:)
  • @Layzone - 它返回 'data: 而不是 'data: [Object, Object, Object, ...]。

标签: javascript php angularjs phpstorm


【解决方案1】:

一旦我将函数中的 URL 从

更改为
url: 'view/view.php'

url: 'localhost/view.php'

PHP 文件按预期工作。附带说明一下,PHP 文件最初位于我的项目文件夹中,我将其移动到我的 Apache 部署文件夹中以使其工作。我希望这个答案是可以理解的。感谢 @Ayaou 在这里帮助我!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 2016-12-24
    • 2016-08-23
    相关资源
    最近更新 更多