如何在MVC中显示来自SQL数据库的特定数据(AngularJS,HTML,PHP)

时间:2018-04-13 20:06:37

标签: javascript php mysql model-view-controller

我正在开发一个简单的Web应用程序,它读取与特定ID匹配的名称作为输入,并在HTML表格中显示名称。稍后,我可以考虑分页(显示更多按钮等)。

我的PHP错误日志或控制台中没有出现任何错误,但打开页面时没有显示任何错误。

我的数据库名为DataList,其列名为NameID

PHP(在后端运行):     

$sql = "SELECT Name FROM DataList WHERE ID=1";
$result = $conn->query($sql);
$htmlTable = '<table border="1" cellspacing="0" cellpadding="2">
          <tr>';
$haveTable = 'no';


if ($result->num_rows > 0) {
  $haveTable = 'yes';
  while($row = $result->fetch_assoc()) {
    $htmlTable .= "<tr><td>".$row["Name"]."</td></td>";
  }
  $htmlTable .= "</tr>";
  return "$htmlTable";
} else {
  echo "You haven't input anything yet!";
}

mysqli_close($db);

?>

我的HTML代码段:(该文件名为data.html,位于视图文件夹中,位于正文中的div内)

<form id="nameViewForm" >
        <script> window.onload="displayNames()" ; </script>
        <div id="nameTable"></div>
        <button type="button" ng-click="switchForm('#dataInputForm')">Input 
Data</button>
</form>

我的JS控制器(名为user.js的文件,位于控制器文件夹中。)

    app.controller('dataCtrl', function($scope, $http) {

        $http.get("<website>/displayNames.php").then(function(res){

        });

        var config = {
            headers : {
                'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
            }
        }


        $scope.displayNames = function() {
          var data = $.param({

          });
          $http.get("<website>/displayNames.php", data, config).then(function(res) {
              console.log();
              var table = data.property;
              $scope.nameTable = table;
          });
        }

    });

我的逻辑是否存在根本缺陷,还是我在其中一个部分搞乱了?

1 个答案:

答案 0 :(得分:0)

这就是我通常在表格中显示数据的方式。

首先我在html文件中创建一个表,如下所示:

<table>
    <tbody>
        <tr ng-repeat="n in names">
            <td>{{n.name}}</td>
        </tr>
    </tbody>
</table>

并使用ng-repeat显示数据。

在我的js中我得到所有的名字并将它们放入范围变量。

var app = angular.module('app', []);


app.controller('dataCtrl', function ($scope, $http) {

    $scope.getnames = function(){
        $http.get('<website>/displayNames.php')
        .then(function(response) {
            $scope.names = response.data;

        });
    }

    $scope.getnames();
});

在我的php文件中,我简单地回复json数据,如此

$sql = "SELECT Name FROM DataList WHERE ID=1";
$result = $conn->query($sql);

$names = array();


if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $names[] = $row;
    }
} 

$JSONReady = json_encode($names);

echo $JSONReady;