AngularJS、php、およびjavascriptを使用してログインページを作成しようとしています。私はユーザー名とパスワードの組み合わせを含むJSONオブジェクトを含むPHPページを持っています。データはアクセスされ、$ scope.names変数に格納されます。私が望むのは、ログイン関数がこの配列にアクセスし、ログインフォームに入力されたログイン情報がjsonファイルにある任意の組み合わせと一致するかどうかを判断することです。
<!DOCTYPE html>
<html >
<style>
table, th , td {
border: 1px solid grey;
border-collapse: collapse;
padding: 5px;
}
table tr:nth-child(odd) {
background-color: #f1f1f1;
}
table tr:nth-child(even) {
background-color: #ffffff;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<body>
<button type = "button" class = "btn btn-primary" data-toggle = "modal" data-target = "#login">Log In</button>
<br/>
<br/>
<div class = "container">
<h2>TTP Banking Portal</h2>
<ul class = "nav nav-tabs">
<li class = "active"><a data-toggle = "tab" href = "#home">Home</a></li>
<li><a data-toggle = "tab" href = "#transfer">Transfer Funds</a></li>
<li><a data-toggle = "tab" href = "#reports">Generate Reports</a></li>
<li><a data-toggle = "tab" href = "#chat">Chat with An Agent</a></li>
<li><a data-toggle = "tab" href = "#email">Email your Bank</a></li>
</ul>
<div class = "tab-content">
<div id = "home" class = "tab-pane fade in active">
<div ng-app="myApp" ng-controller="clientsCtrl" id = "login" class = "modal fade">
<div class = "modal-dialog">
<div class = "modal-content">
<div class = "modal-header">
<h3>Enter Login Information Below</h3>
</div>
<div class = "modal-body">
<form>
<input type = "input" name = "user" placeholder = "Username" id = "Username" required>
<input type = "input" name = "pass" placeholder = "Password" id = "Password" required>
<button id = "loginbtn" type = "button" class = "btn btn-success" onclick = "login()">Log In</button>
</form>
</div>
<div class = "modal-footer">
<button type = "button" class = "btn-warning" data-toggle = "modal" data-target = "#forgotPassword">Forget Password</button>
<button type = "button" class = "btn btn-primary" id = "close" name = "close" data-dismiss = "modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('clientsCtrl', function($scope, $http) {
$http.get("clients.php")
.then(function(response) {
$scope.names = response.data.records;
});
});
function login() {
var enteredUsername = document.getElementById("Username").value;
var enteredPassword = document.getElementById("Password").value;
console.log(enteredUsername + "," + enteredPassword);
for (var i = 0; i < $scope.names.length; i++) {
console.log($scope.names[i]);
}
}
</script>
</body>
</html>
ありがとうございます。
代わりにクライアントにユーザー名/パスワードの組み合わせを返すには、好ましくは、PHPのフレームワークから認証ソリューションを使用して、サーバー上でそれらを確認する必要があります。誰でもdevtoolsのネットワークタブにあるサーバーからのjson応答を見ることができ、非常に安全です。 –
私が働いているチームは何らかの理由でこの方法を使いたいと思っています。そう、あなたはそれをこのようにする方法を知っていますか? –
$ scopeはローカル変数です。それをコントローラの外で使うことはできません。代わりにnamesという名前のグローバル変数を使用し、それをループします。 –