2 listopada 2016

Angular – lista plików JSON z katalogu

Kategoria: HTML + CSS, JavaScript, PHP Autor: FX

Angular jest biblioteką javascript o dużych możliwościach, do zalet należy m. in. iterowanie HTML (pętle), obsługa Ajaxa i in.

Głównym jej celem jest oddzielenie kodów HTML od PHP – aplikacje PHP wykonują zapytania SQL i operacje na dysku, a następnie zwracają rezultat w postaci plików JSON (JavaScript Object Notation), to specjalne pliki do przechowywania tablic, tablic asocjacyjnych i in. zmiennych JS.

Program PHP wywoływany jest z AJAXA, a wyniki w postaci JSON dynamicznie podstawiane są w HTML bez potrzeby pisania pętli.

Przykład z listą plików o zadanej masce, w postaci linków, z bieżącego katalogu:
json_listaplikow.php

1
2
3
<?php
echo json_encode(glob("*.html")); //glob - zwraca tablicę z listą plików, a json_encode - formatuje jako JSON
?>

PHP zwraca JSON, dane w postaci podobnej do:

1
[ "1.html", "2.html", "index.html" ]

Aplikacja Angular do obsługi powyższych danych JSON

index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head>
 <meta charset="utf-8">
 <title>Lista plików HTML</title>
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>
<h1>Lista plików *.html w Angular</h1>
 <div ng-app="myApp" ng-controller="customersCtrl">
  <ul>
   <li ng-repeat="plik in pliki"><a href="{{plik}}">{{plik}}</a></li>
    <!-- Tu^ jest pętla: ng-repeat.
   pliki- to tablica z danymi JSON,
   plik to zmienna sterująca przybierająca po kolei każdą wartość w tablicy pliki
   w html używa się podwójnych wąsów do wstawienia tej zmiennej sterującej-->          
  </ul>
 </div>
 <script>
 var app = angular.module('myApp', []);
 app.controller('customersCtrl', function($scope, $http) {
        $http.get("http://mojserwer/json_listaplikow.php") //Ajax
                .success( function(data, status, headers, config){ //funkcja wywołana po odczytaniu danych z PHP
                        $scope.pliki=data; //dane JSON z PHP zapisane w globalnej tablicy pliki
                });
 });
</script>
</body>
</html>

Komentowanie wyłączone.