Add: player_list.js

This commit is contained in:
2018-07-03 14:35:39 +09:00
parent c4edd7abe1
commit fa241a6ee0
9 changed files with 459 additions and 54 deletions
+31 -2
View File
@@ -51,12 +51,20 @@
text-align: center; text-align: center;
} }
#registered_player_list .registered_player_list_name { #registered_player_list > li > span {
line-height: normal;
}
#registered_player_list .player_id {
background-color: #ffffff;
}
#registered_player_list .player_name {
width: 200px; width: 200px;
background-color: #ffdddd; background-color: #ffdddd;
} }
#registered_player_list .registered_player_list_entercode { #registered_player_list .player_entercode {
width: 200px; width: 200px;
background-color: #ddffdd; background-color: #ddffdd;
} }
@@ -74,4 +82,25 @@
cursor: pointer; cursor: pointer;
} }
#search {
overflow: hidden;
}
#search_player {
float: left;
line-height: 2em;
width: 400px;
padding: 10px;
background-color: #aaaaff;
}
#search_result {
float: right;
line-height: 2em;
width: 600px;
padding: 10px;
background-color: #ffaaaa;
}
</style> </style>
+27 -26
View File
@@ -3,6 +3,9 @@ let playerCount = 0;
let playerListPage = 0; let playerListPage = 0;
let lastPageNo = 0; let lastPageNo = 0;
let addPlayerList;
let searchPlayerList
$(document).ready(function() { $(document).ready(function() {
maestroID = sessionStorage.getItem("maestroID"); maestroID = sessionStorage.getItem("maestroID");
@@ -44,7 +47,6 @@ function loadPlayerList() {
playerCount = replyJSON["Count"]; playerCount = replyJSON["Count"];
lastPageNo = Math.floor( (playerCount + 1) / 10 ); lastPageNo = Math.floor( (playerCount + 1) / 10 );
console.log("registered player count : " + playerCount);
loadPlayerListPage(1); loadPlayerListPage(1);
addPlayerListPages(); addPlayerListPages();
} }
@@ -69,18 +71,21 @@ function onClickPlayerListPage(pageNo) {
playerListPage = 1; playerListPage = 1;
loadPlayerListPage(playerListPage); loadPlayerListPage(playerListPage);
return; return;
case "prev": case "prev":
if(playerListPage > 1) if(playerListPage > 1)
playerListPage -= 1; playerListPage -= 1;
loadPlayerListPage(playerListPage); loadPlayerListPage(playerListPage);
return; return;
case "next": case "next":
console.log("playerListPage : " + playerListPage);
console.log("lastPageNo : " + lastPageNo);
if(playerListPage < lastPageNo) if(playerListPage < lastPageNo)
playerListPage += 1; playerListPage += 1;
loadPlayerListPage(playerListPage); loadPlayerListPage(playerListPage);
return; return;
case "last": case "last":
loadPlayerListPage(lastPageNo); loadPlayerListPage(lastPageNo);
return; return;
@@ -90,13 +95,12 @@ function onClickPlayerListPage(pageNo) {
} }
function loadPlayerListPage(pageNo) { function loadPlayerListPage(pageNo) {
playerListPage = pageNo;
let pageIndex = pageNo - 1; let pageIndex = pageNo - 1;
let startNo = pageIndex * 10; let startNo = pageIndex * 10;
let endNo = pageIndex * 10 + 9; let endNo = pageIndex * 10 + 9;
console.log("startNo : " + startNo);
console.log("endNo : " + endNo);
let xhr = new XMLHttpRequest(); //new로 생성. let xhr = new XMLHttpRequest(); //new로 생성.
xhr.open('POST', './../server/user/registered_player_list_page.php', true); xhr.open('POST', './../server/user/registered_player_list_page.php', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
@@ -128,33 +132,26 @@ function loadPlayerListPage(pageNo) {
return; return;
} }
console.log(replyJSON["PlayerList"]); // console.log(replyJSON["PlayerList"]);
updatePlayerListPage(replyJSON["PlayerList"]); updatePlayerListPage(replyJSON["PlayerList"]);
} }
} }
} }
function addPlayerListTitle() {
$("#registered_player_list").empty();
$("#registered_player_list").append(
'<li class="registered_player_list_name">이름</li><li class="registered_player_list_entercode">입장 코드</li>'
);
}
function updatePlayerListPage(playerList) { function updatePlayerListPage(playerList) {
$("#registered_player_list").empty(); for(let i = 0; i < 10; i++) {
addPlayerListTitle(); let listIndex = i + 1; // index 0 : list title
for(let i = 0; i < playerList.length; i++) { if(i < playerList.length) {
$("#registered_player_list").append( $("#registered_player_list .player_id").filter(":eq(" + i + ")").empty();
"<li>" $("#registered_player_list .player_id").filter(":eq(" + i + ")").append(playerList[i]["UserID"]);
+ "" + playerList[i]["UserID"] + "" $("#registered_player_list .player_name").filter(":eq(" + listIndex + ")").val(playerList[i]["Name"]);
+ "<input type='text' value='" + playerList[i]["Name"] + "' class='registered_player_list_name'>" $("#registered_player_list .player_entercode").filter(":eq(" + listIndex + ")").val(playerList[i]["EnterCode"]);
+ "<input type='text' value='" + playerList[i]["EnterCode"] + "' class='registered_player_list_entercode'>" } else {
+ "<input type='button' value='수정'>" $("#registered_player_list .player_id").filter(":eq(" + i + ")").empty();
+ "</li>" $("#registered_player_list .player_name").filter(":eq(" + listIndex + ")").val("");
); $("#registered_player_list .player_entercode").filter(":eq(" + listIndex + ")").val("");
}
} }
} }
@@ -245,5 +242,9 @@ function addPlayer() {
loadPlayerListPage(1); loadPlayerListPage(1);
} }
} }
}
function deletePlayer(id) {
} }
+99
View File
@@ -0,0 +1,99 @@
class PlayerContent {
constructor(playerID, playerName, enterCode) {
this.playerID = playerID;
this.playerName = playerName;
this.enterCode = enterCode;
}
}
class PlayerList {
constructor(parent) {
let self = this;
this.listParent = parent;
// console.log(parent);
let id_list = parent.find(".player_id");
// console.log(id_list);
this.playerContents = new Array();
for(let i = 0; i < id_list.length; i++) {
this.playerContents[i] = new PlayerContent(
id_list[i], // span
$(id_list[i]).siblings(".player_name"),
$(id_list[i]).siblings(".player_entercode")
// name_list[i + 1], // input
// entercode_list[i + 1] // input
);
$(id_list[i]).siblings(".player_edit").click(function() {
self.editPlayer(this);
})
$(id_list[i]).siblings(".player_delete").click(function() {
self.deletePlayer(this);
})
// console.log(this.playerContents[i].playerName.val());
}
}
editPlayer(inputButton) {
// console.log(inputButton);
let id = $(inputButton).siblings(".player_id");
// console.log(id);
let playerID = id.text();
console.log(playerID);
}
deletePlayer(inputButton) {
let id = $(inputButton).siblings(".player_id");
let playerID = id.text();
if(playerID === null || playerID === "")
return;
console.log(playerID);
let xhr = new XMLHttpRequest(); //new로 생성.
xhr.open('POST', './../server/user/delete_player.php', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("maestro_id=" + maestroID + "&player_id=" + playerID);
xhr.onload = function() {
if(xhr.readyState === 4 && xhr.status === 200) {
// console.log(xhr.responseText);
// console.log(xhr.responseText.length);
if(xhr.responseText.length === 0 || xhr.responseText === null) {
console.log("no data from server");
return;
}
let replyJSON = JSON.parse(xhr.responseText);
// console.log(replyJSON);
if(replyJSON === null) {
console.log("no data from server");
return;
}
if(replyJSON["ERROR"] !== undefined || replyJSON["RESULT"] === undefined) {
console.log(replyJSON["ERROR"]);
return;
}
if(replyJSON["RESULT"] === "fail") {
console.log(replyJSON["RESULT"]);
return;
}
console.log("update player list");
loadPlayerListPage(1);
}
}
}
}
+1
View File
@@ -11,6 +11,7 @@
<script type="text/javascript" src="./../../../resources/jquery/jquery-3.3.1.min.js"></script> <script type="text/javascript" src="./../../../resources/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="./../js/maestro_main.js"></script> <script type="text/javascript" src="./../js/maestro_main.js"></script>
<script type="text/javascript" src="./../js/player_list.js"></script>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$("#header").load("./../module/maestro_header.html"); $("#header").load("./../module/maestro_header.html");
+89 -3
View File
@@ -1,4 +1,13 @@
<span id="add_player"> <script type="text/javascript">
$(document).ready(function() {
console.log("add_player loaded");
addPlayerList = new PlayerList($("#registered_player_list"));
});
</script>
<span id="add_player">
<h2>추가</h2> <h2>추가</h2>
<h3>1명 추가</h3> <h3>1명 추가</h3>
@@ -15,6 +24,7 @@
</textarea> </textarea>
<!--
<h3>단체 추가</h3> <h3>단체 추가</h3>
<form action="/action_page.php" method="get" id="add_users"> <form action="/action_page.php" method="get" id="add_users">
@@ -31,12 +41,88 @@
학생 이름 : (한글) 10글자, (영문) 20글자까지 입력 가능 학생 이름 : (한글) 10글자, (영문) 20글자까지 입력 가능
입장 코드 : 숫자 1~6자리 수 입장 코드 : 숫자 1~6자리 수
</textarea> </textarea>
-->
</span> </span>
<span id="player_list_result"> <span id="search_result">
목록 학생 목록
<div id="player_list_result_contents"> <div id="player_list_result_contents">
<ul id="registered_player_list"> <ul id="registered_player_list">
<li>
<span class="player_name">이름</span>
<span class="player_entercode">입장 코드</span>
<input type='button' value='전체 삭제' onClick="deletePlayer('all')">
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name" value="test">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name" value="test">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
<li>
<span class="player_id"></span>
<input type='text' class="player_name">
<input type='text' class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' class="player_delete" value='삭제'>
</li>
</ul> </ul>
</div> </div>
+1 -16
View File
@@ -1,8 +1,7 @@
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
console.log("ready");
$("#section_add_player").load("./../module/maestro_section_add_player.html"); $("#section_add_player").load("./../module/maestro_section_add_player.html");
$("#search").load("./../module/maestro_section_search.html");
loadPlayerList(); loadPlayerList();
}); });
@@ -25,20 +24,6 @@ $(document).ready(function() {
</div> </div>
<div id="search" class="hide"> <div id="search" class="hide">
<div>
검색
아이디
<input type="text" id="search_name"><button>찾기</button><br/>
<br/>
<h3>검색 결과</h3>
학생 이름
<input type="text" id="result_name"><button>삭제</button><br/>
입장 코드
<input type="text" id="result_entercode"><button>수정</button>
</div>
</div> </div>
<div id="mouse_app_list" class="hide"> <div id="mouse_app_list" class="hide">
+113
View File
@@ -0,0 +1,113 @@
<script type="text/javascript">
$(document).ready(function() {
console.log("search loaded");
searchPlayerList = new PlayerList($("#search_player_list"));
});
</script>
<span id="search_player">
검색
아이디
<input type="text" id="search_name"><button>찾기</button><br/>
<br/>
<h3>검색 결과</h3>
학생 이름
<input type="text" id="result_name"><button>삭제</button><br/>
입장 코드
<input type="text" id="result_entercode"><button>수정</button>
</span>
<span id="search_result">
검색 결과
<div id="player_list_result_contents">
<ul id="search_player_list">
<li>
<span class="player_name">이름</span>
<span class="player_entercode">입장 코드</span>
<input type='button' value='전체 삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
<li class="search_result_list">
<span class="player_id"></span>
<input type='text' value="" class="player_name">
<input type='text' value="" class="player_entercode">
<input type='button' class="player_edit" value='수정'>
<input type='button' value='삭제'>
</li>
</ul>
</div>
<div id="player_list_navigator">
<span><a onClick="onClickPlayerListPage('first')"> << </a></span>
<span><a onClick="onClickPlayerListPage('prev')"> < </a></span>
<span id="player_list_pages"></span>
<span><a onClick="onClickPlayerListPage('next')"> > </a></span>
<span><a onClick="onClickPlayerListPage('last')"> >> </a></span>
</div>
</span>
+1 -7
View File
@@ -16,15 +16,9 @@ if(!is_numeric($enterCode)) {
include "./../setup/connect_db.php"; include "./../setup/connect_db.php";
function send_error_message2($replyJSON, $error_message) {
$replyJSON["ERROR"] = $error_message;
echo json_encode($replyJSON, JSON_UNESCAPED_UNICODE);
// $db_conn->close();
}
$result = hasPlayerName($maestroID, $playerName, $enterCode); $result = hasPlayerName($maestroID, $playerName, $enterCode);
if($result !== null) { if($result !== null) {
send_error_message2($replyJSON, "이미 등록된 학생과 입장 코드 정보입니다."); send_error_message($replyJSON, "이미 등록된 학생과 입장 코드 정보입니다.");
// $db_conn->close(); // $db_conn->close();
exit; exit;
} }
+97
View File
@@ -0,0 +1,97 @@
<?php
header('Content-Type: application/json');
$maestroID = $_POST["maestro_id"];
$playerID = $_POST["player_id"];
/*
if(!is_numeric($enterCode)) {
send_error_code('생년월일이 숫자가 아닙니다. : '.$enterCode);
exit;
} else if(strlen($enterCode) != 6) {
send_error_code('6자리 숫자값을 정확히 입력하세요 : YYMMDD (예 : 120131) : '.$enterCode);
exit;
}
*/
include "./../setup/connect_db.php";
deletePlayer($maestroID, $playerID);
$result = hasPlayerID($maestroID, $playerID);
if($result === true) {
send_result_message($replyJSON, "학생 계정 삭제 실패");
exit;
}
$result = hasPlayerRecord($maestroID, $playerID);
if($result === true) {
send_result_message($replyJSON, "학생 플레이 기록 삭제 실패");
exit;
}
$replyJSON["RESULT"] = "success";
echo json_encode($replyJSON, JSON_UNESCAPED_UNICODE);
$db_conn->close();
function deletePlayer($maestroID, $playerID) {
global $db_conn;
$query = "DELETE FROM moty_best_record WHERE MaestroID = ? AND UserID = ?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param('ii', $maestroID, $playerID);
$result = $stmt->execute();
$stmt->close();
// if($result) {
// echo "deleted row count : ".$stmt->affected_rows;
// }
$query = "DELETE FROM moty_user WHERE MaestroID = ? AND UserID = ?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param('ii', $maestroID, $playerID);
$result = $stmt->execute();
$stmt->close();
// if($result) {
// echo "deleted row count : ".$stmt->affected_rows;
// }
}
function hasPlayerID($maestroID, $playerID) {
global $db_conn;
$query = "SELECT UserID FROM moty_user WHERE MaestroID=? AND UserID=?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param('ii', $maestroID, $playerID);
$stmt->execute();
$stmt->bind_result($userID);
// while($stmt->fetch())
$stmt->fetch();
$stmt->close();
if($userID !== null)
return true;
return false;
}
function hasPlayerRecord($maestroID, $playerID) {
global $db_conn;
$query = "SELECT UserID FROM moty_best_record WHERE MaestroID=? AND UserID=?";
$stmt = $db_conn->prepare($query);
$stmt->bind_param('ii', $maestroID, $playerID);
$stmt->execute();
$stmt->bind_result($userID);
// while($stmt->fetch())
$stmt->fetch();
$stmt->close();
if($userID !== null)
return true;
return false;
}
?>