2017-10-01 2 views
0

Vor Down-Abstimmung (Ich wollte die CRUD mit JSON-Datei und nicht die Datenbank implementieren)Einfacher CRUD mit AngularJS und PHP mit JSON-Datei für Speicher

Ich verwende den folgenden Code in Angular JS die senden form Daten zu PHP und von PHP wollte ich meine lokale JSON-Datei ändern.

ich unten bin vor gibt

  1. Die Formularwerte in der JSON-Datei als Null gehen
  2. ich das Array jedes Mal Benutzer klickt auf die Schaltfläche Registrieren

    <!DOCTYPE html> 
        <html lang="en"> 
        <head> 
        <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script> 
        </head> 
        <body ng-app="myApp"> 
        <div ng-controller="myCtrl"> 
         <form> 
         <h2>Register Form</h2> 
         <div> 
         <label>First Name</label> 
         <input type="text" ng-model="firstname" placeholder="First Name" required="required"> 
         </div> 
        <div> 
         <label>Last Name</label> 
         <input type="text" ng-model="lastname" placeholder="Last Name" required="required"> 
        </div> 
        <button ng-click='Register()'>Register</button> 
        </form> 
        <table> 
        <tr> 
         <th>First Name</th> 
         <th>Last Name</th> 
        </tr> 
        <tr ng-repeat="data in usersData"> 
         <td>{{data.firstname}}</td> 
         <td>{{data.lastname}}</td> 
        </tr> 
        </table> 
    </div> 
    <script type="text/javascript"> 
    
        var app = angular.module('myApp', []); 
        app.controller('myCtrl', function ($scope, $http) { 
    
        $scope.Register = function() { 
         $http.post("misc.php", { 
         'firstname': $scope.firstname, 
         'lastname': $scope.lastname 
         }).success(function (response) { 
         $scope.usersData = response.users; 
         }); 
        }; 
        }); 
    </script> 
    
    </body> 
    </html> 
    
  3. anhängen möchten

PHP-Code

<?php 
$file="misc.json"; 
$json = json_decode(file_get_contents($file),TRUE); 
$first = $_POST['firstname']; 
$last = $_POST['lastname']; 
$json[$user] = array("first" => $first, "last" => $last); 
file_put_contents($file, json_encode($json)); 
?> 

aber sobald ich übermittle ich unter info für Ihre zweite Frage beantworten kann {"":{"first":null,"last":null}}

Aber ich wollte reale Werte senden und das JSON-Format Ich möchte als

[{ 
    "first": "John", 
    "last": "Anderson" 
}, 
{ 
    "first": "Mike", 
    "last": "Langer" 
}] 
+1

$ machen nicht gesetzt ist, Winkel leitet Daten roh so Sie müssen 'file_get_contents ('php: // input')' in PHP anstelle von POST verwenden oder die übergebenen Formulardaten in angular ändern. Sie müssen auch Ihre Entwicklungsumgebung so einstellen, dass alle Fehler angezeigt werden. Und schließlich stimmt Ihre erwartete Ausgabe nicht mit dem überein, was Sie von '$ json [$ user] = array (...' erhalten, es gibt Ihnen eine json-Datei mit '{" was auch immer $ user is ": [" first " : "jim", "last": "leirvik"]} '. – JimL

Antwort

1

ich in der JSON-Datei bin immer Ich möchte das Array jedes Mal anhängen, wenn der Benutzer auf den Registrierungsbutton klickt.

Haben Sie ein lokales Array mit dem Namen $ scope.usernames und wenn Sie einen $ http.post Aufruf innerhalb dieser Erfolgsfunktion machen, hängen Sie es an den $ scope an .username a Rache. Siehe den folgenden Code.

var app = angular.module('myApp', []); 
app.controller('myCtrl', function ($scope, $http) { 
    $scope.usernames=[]; 
    $scope.Register = function() { 
    $http.post("misc.php", { 
    'firstname': $scope.firstname, 
    'lastname': $scope.lastname 
    }).success(function (response) { 
     $scope.usernames.push({"firstname":$scope.firstname,"lastname":$scope.lastname});  
     $scope.usersData = response.users; 
    }); 
    }; 
}); 

ich PHP verwendet haben lange zurück, so konnte ich nicht um den ersten Fehler finden zunächst sicherstellen, dass es in Winkel arbeitet dann einen Beitrag Anruf Benutzer

+0

Sicher dies jetzt überprüfen !! – Batman

+0

Wenn es funktioniert gut, bitte diese Antwort als richtig. Danke – Kannan

Verwandte Themen