최신 버전의 문서는 언제든지 http://crealnet.blogspot.kr에서 얻을 수 있습니다.
문서가 업데이트 될 때마다 이메일로 받아보고 싶으시다면 http://crealnet.blogspot.kr/p/pdf.html 를 사용해 주세요.
기타 추가적으로 필요하신 사항은 http://crealnet.blogspot.kr/p/blog-page.html에서 연락주시면 됩니다.
읽어주셔서 감사합니다!
php 간단 일기장 - 글 수정하기 - 화면 만들기
글 수정은 글쓰기와 비슷하지만 한가지 차이가 있다.
바로 기존에 썼던 글이 보여야 한다는 것이다.
따라서 기존에 썼던 글을 가져와서 보여줘야 한다.
그렇다면 여러개의 글 중에서 어떤 글을 보여줘야 할지 알 필요가 있다.
우리는 이미 diary_id 라는 이름으로 각 일기장 페이지를 구분했으므로 이것을 이용해서 보여주기로 한다.
따라서 editsubmit.php 로 전달할 내용은
[contents]
[diary_id]
이다.
글 수정 화면이 보이기 위한 과정
- 웹브라우저 주소창에 GET 파라미터 중 diary_id 가 있는지 본다.
- 만약에 diary_id가 GET 파라미터 안에 있다면
- 데이터베이스에 접속한다.
- diary 테이블에서 diary_id가 get 파라미터 diary_id 인 것들을 가지고 온다.
- 만약 데이터베이스 쿼리 실행 결과 갯수가 1이라면 파라미터로 들어온 diary_id 와 데이터베이스의 데이터 중 diary_id가 일치하는 데이터가 있는 것이다.
- 일치한다면 그 데이터의 contents를 보여준다.
- 만약 diaryedit.php 에서 주소창 파라미터로 diary_id 가 전달되지 않았을 경우 editsubmit.php 에서도 diary_id 가 빈 값으로 나오게 된다.
글 수정 처리 페이지로 넘길 내용
글 수정 화면에서 수정 버튼이 클릭되었을 때 form 태그에 의해 editsubmit.php 로 이동한다.
이때 contents 만 editsubmit.php 로 전달되면 editsubmit.php 는 어떤 데이터를 수정해야 할 지 모르게 된다.
따라서 diary_id 도 같이 전달할 필요가 있다.
hidden 태그는 사용자에게 보이지는 않고 값을 가지고만 있는 html 태그이므로 hidden 태그에 diary_id 값을 넣어서 editsubmit.php 에 전달한다.
만약 diaryedit.php 에서 주소창 파라미터로 diary_id 가 전달되지 않았을 경우 editsubmit.php 에서도 diary_id 가 빈 값으로 나오게 된다.
<input type="hidden" name="diary_id" value="<?php echo $diary_id; ?>" />
코드
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form action="editSubmit.php" target="_self" method="post">
<textarea name="contents" rows="3" cols="50"><?php
$diary_id = '';
if (isset($_GET['diary_id']))
{
$diary_id = $_GET['diary_id'];
$db_host = "localhost";
$db_user = "php111";
$db_passwd = "php111";
$db_name = "phpdiary";
$conn = mysql_connect($db_host,$db_user,$db_passwd) or die ("데이터베이스 연결에 실패하였습니다!");
mysql_select_db($db_name, $conn);
mysql_query("set names utf8");
$query = 'select * from diary where diary_id=' . $diary_id;
$result = mysql_query($query);
$total = mysql_affected_rows();
if ($total == 1)
{
mysql_data_seek($result,0);
$r = mysql_fetch_array($result);
echo $r['contents'];
}
}
?></textarea>
<br/>
<input type="submit" value="수정" />
<input type="hidden" name="diary_id" value="<?php echo $diary_id; ?>" />
</form>
</body>
</html>
위 내용을
diaryedit.php 로 저장한다.
댓글 없음:
댓글 쓰기