티스토리 뷰

PHP - 게시글 수정하기 (3) 제목, 내용, 파일 불러오기 >>

 

PHP - 게시글 수정하기 (3) 제목, 내용, 파일 불러오기

PHP - 게시글 수정하기 (2) 카테고리 불러오기>> PHP - 게시글 수정하기 (2) 카테고리 불러오기 1. 수정 버튼 경로 설정 blogModify.php에 get방식으로 blogID 넘겨준다. 2. blogModify.php 만들기 (blogWrite.ph..

ohcodingoh.tistory.com

1. form 수정

<form action="blogModifySave.php?blogID=<?=$blogID?>" name="blogWrite" method="post" enctype="multipart/form-data">
    <fieldset>
        <legend class="ir_so">블로그 게시글 수정 영역</legend>
        <?php
             $sql = "SELECT blogImgFile, blogCategory, blogTitle, blogContents, blogRegTime FROM myBlog WHERE blogID = '{$blogID}'";
             $result = $connect -> query($sql);

             $blogInfo = $result -> fetch_array(MYSQLI_ASSOC);
        ?>
        <div>
            <label for="blogCate">카테고리</label>
            <select name="blogCate" id="blogCate">
                <?php
                    switch($blogInfo['blogCategory']){
                        case 'daily':
                ?>          <option value="daily" selected>일상</option>
                            <option value="info">정보</option>
                            <option value="news">소식</option>
                            <option value="dish">요리</option>
                <?php       break; 
                        case 'info': ?>
                            <option value="daily">일상</option>
                            <option value="info" selected>정보</option>
                            <option value="news">소식</option>
                            <option value="dish">요리</option>
                <?php        break;
                        case 'news': ?>
                            <option value="daily">일상</option>
                            <option value="info">정보</option>
                            <option value="news" selected>소식</option>
                            <option value="dish">요리</option>
                <?php        break;
                        case 'dish': ?>
                            <option value="daily">일상</option>
                            <option value="info">정보</option>
                            <option value="news">소식</option>
                            <option value="dish" selected>요리</option>
                <?php        break;
                    }
                ?>
            </select>
        <div>
            <label for="blogTitle">제목</label>
            <input type="text" name="blogTitle" id="blogTitle" placeholder="제목을 넣어주세요" value="<?=$blogInfo['blogTitle']?>" required>
        </div>
        <div>
            <label for="blogContents">내용</label>
            <?php
                $txt = $blogInfo['blogContents'];   //대상 문자열
                $result = str_replace('<br />' , '', $txt);
                // str_replace('변경 전 문자' , '변경 후 문자', '변경 대상 문자열');
            ?>
            <textarea name="blogContents" id="blogContents" placeholder="내용을 넣어주세요!" required><?=$result?></textarea>
        </div>
        <div style="margin-bottom:40px;">
            <label for="blogImg">현재파일</label>
            <img src="../assets/img/blog/<?=$blogInfo['blogImgFile']?>" alt="현재이미지" style="margin-bottom:20px;" class="modifyImg">
            //파일 지우기 버튼 추가
            <button type="button" onclick="delImg()">현재파일 지우기</button>
        </div>
        //파일 바꾸기 input 추가
        <div>
            <label for="blogFile">파일바꾸기</label>
            <input type="file" name="blogFile" id="blogFile" placeholder="사진을 넣어주세요! 사진은 jpg, gif, png 파일만 지원이 됩니다.">
        </div>
        <button type="submit" value="저장하기">저장하기</button>
    </fieldset>
</form>

2. delImg() 함수 정의(jQuery)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        function delImg() {
        	//php변수 저장
            var delImg = "<? echo $blogInfo['blogImgFile'];?>";
            var blogID = "<? echo $blogID;?>";
            $.ajax({
            type : "POST", //POST방식으로 데이터를 넘겨준다.
            url : "blogImgDel.php", //blogImgDel.php로 넘겨준다.
            data : {"blogID": blogID, "delImg": delImg}, //blogID와 delImg데이터를 넘겨준다.
            dataType : "json",
            success : function(data){ //성공하면 class가 modifyImg인 테그의 src속성을 ~defualt.svg(기본이미지)로 바꿔준다.
                $(".modifyImg").attr("src", "../assets/img/blog/default.svg");
            },
            error : function(request, status, error){ //에러코드
                console.log("request" + request);
                console.log("status" + status);
                console.log("error" + error);
            }
            });
        }
    </script>

3. blogImgDel.php

<?php
    include "../connect/connect.php";

    //변수 설정, POST로 전달 받은 데이터 저장
    $blogID = $_POST['blogID'];
    $delImg = $_POST['delImg'];
	
    //수정 게시글의 파일명을 default.svg(기본이미지)로 바꾼다.
    $sql = "UPDATE myBlog SET blogImgFile = 'default.svg' WHERE blogID = {$blogID}";
    $result = $connect -> query($sql);

	//결과 값으로 true를 넘겨준다.
    echo json_encode(array("result" => true));
?>

4. 결과

->현재파일 지우기 버튼 클릭(한번 누르면 무를 수 없음, 수정 필요해 보임)

PHP - 게시글 수정하기 (5) modifySave.php 추가 >>

 

PHP - 게시글 수정하기 (5) modifySave.php 추가

1. form으로 입력받은 데이터로 테이블 UPDATE blogWrite.php에 있는 형식을 그대로 가져와서 INSERT쿼리를 UPDATE쿼리로 바꿔준다. +파일 저장 부분은 수정이 필요해 보인다. <?php include "../connect/connect..

ohcodingoh.tistory.com

 

댓글
© 2018 webstoryboy