이제 리스트 화면에서 특정회원을 삭제해 보도록 하겠습니다.
특정 회원을 삭제하기 위해선 해당 회원의 키값을 전달해야 하는데 회원가입예제에서 POST 처리를 했으므로 이번에는 GET방식으로 회원 키값을 받아 처리하는 예제를 해보겠습니다.
먼저 list.html 에 각 회원목록에 버튼을 만들어 회원의 정보를 삭제할 수있도록 GET방식으로 삭제 메소드에 변수를 전달하는 코드를 만듭니다.
기존 list.html 을 아래의 내용으로 수정합니다.
* Spac/view/list.html
회원 삭제처리 메소드는 User 클래스내에 "deleteUser" 로 하겠습니다.
따라서 위의 예제에서는 각 회원리스트중 "삭제" 버튼을 클릭하면 "/User/deleteUser/아이디" 를 브라우저로 호출하도록 했습니다.
URL에서 슬래시를 기준으로 첫번째는 클래스명, 두번째는 메소드명, 세번째이상은 전달 GET 변수입니다.
따라서 위 주소의 뜻은 User 클래스의 deleteUser 메소드를 "아이디"를 인자로 호출한다는의미입니다.
이제 실행할 실제 deleteUser 메소드를 작성합니다.
* Spac/model/User.Class.php
:::[getDeleteGetVars] 설명:::
위 내용중 파란색 글자 부분이 기존 User 클래스에서 추가된 내용입니다.
"getDeleteGetVars" 메소드를 보면 GET변수를 받는 방법을 알 수 있습니다.
도메인/클래스명/메소드명/parameter1/parameter2.....
위의 형식 중 parameter를 받는 방법은
$param1 = $this->args[0];
$param2 = $this->args[1];
위의 getDeleteGetVars 예제에선 전달 변수가 1개이므로
이처럼 변수를 받아 맴버변수로 저장했습니다.
[deleteUser] 설명
먼저 위의 getDeleteGetVars 메소드를 호출하여 전달된 변수를 맴버변수로 받습니다.
해당 변수를 user_id 조건으로 삭제 SQL 문을 처리합니다.
처리 후엔
이처럼 회원 리스트 화면으로 이동시킵니다.
이제 브라우저에서 삭제처리를 실행하여 제대로 삭제가 이루어 지는지 테스트합니다.
특정 회원을 삭제하기 위해선 해당 회원의 키값을 전달해야 하는데 회원가입예제에서 POST 처리를 했으므로 이번에는 GET방식으로 회원 키값을 받아 처리하는 예제를 해보겠습니다.
먼저 list.html 에 각 회원목록에 버튼을 만들어 회원의 정보를 삭제할 수있도록 GET방식으로 삭제 메소드에 변수를 전달하는 코드를 만듭니다.
기존 list.html 을 아래의 내용으로 수정합니다.
* Spac/view/list.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>회원리스트</title>
<script>
function deleteUser(user_id) {
document.location.href="/User/deleteUser/"+user_id;
}
</script>
</head>
<body>
회원수는 <?=count($this->data_list)?> 명 입니다.
<br/><br/>
<table border="1">
<tr bgcolor="#f2f2f2">
<td width="100">아이디</td>
<td width="120">이름</td>
<td width="150">등록일</td>
<td width="60">처리</td>
</tr>
<?php
foreach($this->data_list as $Rows) {
?>
<tr>
<td width="100"><?=$Rows['user_id']?></td>
<td width="120"><?=$Rows['user_name']?></td>
<td width="150"><?=$Rows['reg_date']?></td>
<td width="60"><a href="#" onClick="deleteUser('<?=$Rows['user_id']?>')">삭제</a></td>
</tr>
<?php
}
?>
</table>
<!-- 회원가입버튼을 만들어주고 클릭하면 이전에 만든 가입폼으로 이동시킵니다. -->
<input type="button" value="회원가입" onClick="document.location.href='/User/viewUserRegForm'"></input>
</body>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>회원리스트</title>
<script>
function deleteUser(user_id) {
document.location.href="/User/deleteUser/"+user_id;
}
</script>
</head>
<body>
회원수는 <?=count($this->data_list)?> 명 입니다.
<br/><br/>
<table border="1">
<tr bgcolor="#f2f2f2">
<td width="100">아이디</td>
<td width="120">이름</td>
<td width="150">등록일</td>
<td width="60">처리</td>
</tr>
<?php
foreach($this->data_list as $Rows) {
?>
<tr>
<td width="100"><?=$Rows['user_id']?></td>
<td width="120"><?=$Rows['user_name']?></td>
<td width="150"><?=$Rows['reg_date']?></td>
<td width="60"><a href="#" onClick="deleteUser('<?=$Rows['user_id']?>')">삭제</a></td>
</tr>
<?php
}
?>
</table>
<!-- 회원가입버튼을 만들어주고 클릭하면 이전에 만든 가입폼으로 이동시킵니다. -->
<input type="button" value="회원가입" onClick="document.location.href='/User/viewUserRegForm'"></input>
</body>
</html>
회원 삭제처리 메소드는 User 클래스내에 "deleteUser" 로 하겠습니다.
따라서 위의 예제에서는 각 회원리스트중 "삭제" 버튼을 클릭하면 "/User/deleteUser/아이디" 를 브라우저로 호출하도록 했습니다.
URL에서 슬래시를 기준으로 첫번째는 클래스명, 두번째는 메소드명, 세번째이상은 전달 GET 변수입니다.
따라서 위 주소의 뜻은 User 클래스의 deleteUser 메소드를 "아이디"를 인자로 호출한다는의미입니다.
이제 실행할 실제 deleteUser 메소드를 작성합니다.
* Spac/model/User.Class.php
<?php
require_once("../Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
var $data_list = array();
function User () {
$this->Dao = new Dao; //$this->getControllerInstance("Dao"); 로 대체 가능.
$this->Dao->transaction = true;
$this->Dao->connect();
}
function viewUserRegForm() {
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
// POST 로 전송된 값을 맴버변수로 세팅합니다.
function setPostVars() {
$this->user_id = $_POST['user_id'];
$this->user_pw = $_POST['user_pw'];
$this->user_name = $_POST['user_name'];
}
//위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
function regUser() {
$this->setPostVars();
//print_r($param);
//exit;
$query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
$this->Dao->prepareStatement($query);
$param = array($this->user_id,$this->user_pw,$this->user_name);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
//echo "회원가입에 성공했습니다.";
$this->result_uri = "/User/getUserList";
$this->redirect();
}
function getUserList() {
$this->data_list = array();
$query = " Select * From user_info ";
$this->Dao->executeQuery($query);
while($rows = $this->Dao->getFetchArray()) {
$this->data_list[] = $rows;
}
$this->result_uri = "list.html";
$this->dispatcher();
}
function getDeleteGetVars() {
$this->user_id = $this->args[0];
}
function deleteUser() {
$this->getDeleteGetVars();
$query = " Delete From user_info Where user_id = ?";
$this->Dao->prepareStatement($query);
$param = array($this->user_id);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
$this->Dao->closeStatement();
$this->result_uri = "/User/getUserList";
$this->redirect();
}
}
?>
require_once("../Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
var $data_list = array();
function User () {
$this->Dao = new Dao; //$this->getControllerInstance("Dao"); 로 대체 가능.
$this->Dao->transaction = true;
$this->Dao->connect();
}
function viewUserRegForm() {
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
// POST 로 전송된 값을 맴버변수로 세팅합니다.
function setPostVars() {
$this->user_id = $_POST['user_id'];
$this->user_pw = $_POST['user_pw'];
$this->user_name = $_POST['user_name'];
}
//위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
function regUser() {
$this->setPostVars();
//print_r($param);
//exit;
$query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
$this->Dao->prepareStatement($query);
$param = array($this->user_id,$this->user_pw,$this->user_name);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
//echo "회원가입에 성공했습니다.";
$this->result_uri = "/User/getUserList";
$this->redirect();
}
function getUserList() {
$this->data_list = array();
$query = " Select * From user_info ";
$this->Dao->executeQuery($query);
while($rows = $this->Dao->getFetchArray()) {
$this->data_list[] = $rows;
}
$this->result_uri = "list.html";
$this->dispatcher();
}
function getDeleteGetVars() {
$this->user_id = $this->args[0];
}
function deleteUser() {
$this->getDeleteGetVars();
$query = " Delete From user_info Where user_id = ?";
$this->Dao->prepareStatement($query);
$param = array($this->user_id);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
$this->Dao->closeStatement();
$this->result_uri = "/User/getUserList";
$this->redirect();
}
}
?>
:::[getDeleteGetVars] 설명:::
위 내용중 파란색 글자 부분이 기존 User 클래스에서 추가된 내용입니다.
"getDeleteGetVars" 메소드를 보면 GET변수를 받는 방법을 알 수 있습니다.
도메인/클래스명/메소드명/parameter1/parameter2.....
위의 형식 중 parameter를 받는 방법은
$param1 = $this->args[0];
$param2 = $this->args[1];
위의 getDeleteGetVars 예제에선 전달 변수가 1개이므로
function getDeleteGetVars() {
$this->user_id = $this->args[0];
}
$this->user_id = $this->args[0];
}
이처럼 변수를 받아 맴버변수로 저장했습니다.
[deleteUser] 설명
먼저 위의 getDeleteGetVars 메소드를 호출하여 전달된 변수를 맴버변수로 받습니다.
해당 변수를 user_id 조건으로 삭제 SQL 문을 처리합니다.
처리 후엔
$this->result_uri = "/User/getUserList";
$this->redirect();
$this->redirect();
이처럼 회원 리스트 화면으로 이동시킵니다.
이제 브라우저에서 삭제처리를 실행하여 제대로 삭제가 이루어 지는지 테스트합니다.
'기본예제 > 회원관리' 카테고리의 다른 글
2. 회원리스트 조회 (0) | 2009.12.01 |
---|---|
1. 회원가입 예제 (0) | 2009.12.01 |