뷰페이지에서 여분필드를 다이렉트로 수정하기

· 2022-12-09 (금) 13:34:06 · 4791 · 17

예전에 배포한 팁인데 영역을 확장하였습니다.

그누에는 회원 여분필드와 게시판 여분필드와 게시글(댓글 각각 포함) 여분필드의 3가지 종류가 있고 각기 기본으로 10개씩 내장되어 있습니다.

예제는 mb_1(회원 여분필드), bo_1(게시판 여분필드), wr_1(게시글 여분필드) 로 하였습니다.

기타 비회원에게 안 보이거나 관리자나 회원등급에 따라 보여지게 하려면 적당히 이프문을 넣어주세요.

따로 액션문서나 새로고침 필요없이 버튼 클릭시 그 자리에서 다이렉트로 적용이 됩니다. 

 

----------

 

1. 회원 여분필드(mb_1)

[code]

<?php
if ($_POST['mb_1']) sql_query(" update {$g5['member_table']} set mb_1 = '{$_POST['mb_1']}' where mb_id = '{$member['mb_id']}' ");
?>
<script>
if (sessionStorage.reLoad) {
    sessionStorage.clear();
    location.href = "<?php echo $_SERVER['REQUEST_URI']; ?>";
}
</script>
<form method="post">
    <input name="mb_1" value="<?php echo $member['mb_1']; ?>">
    <button onclick="sessionStorage.reLoad=1">클릭</button>
</form>

[/code]

 

----------

 

2. 게시판 여분필드(bo_1)

[code]

<?php
if ($_POST['bo_1']) sql_query(" update {$g5['board_table']} set bo_1 = '{$_POST['bo_1']}' where bo_table = '{$board['bo_table']}' ");
?>
<script>
if (sessionStorage.reLoad) {
    sessionStorage.clear();
    location.href = "<?php echo $_SERVER['REQUEST_URI']; ?>";
}
</script>
<form method="post">
    <input name="bo_1" value="<?php echo $board['bo_1']; ?>">
    <button onclick="sessionStorage.reLoad=1">클릭</button>
</form>

[/code]

 

----------

 

3. 게시글 여분필드(wr_1)

[code]

<?php
if ($_POST['wr_1']) sql_query(" update $write_table set wr_1 = '{$_POST['wr_1']}' where wr_id = '$wr_id' ");
?>
<script>
if (sessionStorage.reLoad) {
    sessionStorage.clear();
    location.href = "<?php echo $_SERVER['REQUEST_URI']; ?>";
}
</script>
<form method="post">
    <input name="wr_1" value="<?php echo $view['wr_1']; ?>">
    <button onclick="sessionStorage.reLoad=1">클릭</button>
</form>

[/code]

 

----------

 

4. 원래는 아래처럼 더 간명하게 할 수도 있지만 새로고침시 "양식다시제출확인" 이라는 메시지창이 뜨기 때문에 이를 우회하는 로직을 세션스토리지에 넣은 것입니다.

 

[code]

<?php
if ($_POST['wr_1']) sql_query(" update $write_table set wr_1 = '{$_POST['wr_1']}' where wr_id = '$wr_id' ");
$view['wr_1'] = $_POST['wr_1'] ? $_POST['wr_1'] : $view['wr_1'];
?>
<form method="post">
    <input name="wr_1" value="<?php echo $view['wr_1']; ?>">
    <button>클릭</button>
</form>

[/code]

 

----------

 

5. 주의사항입니다.

가령 게시글 여분필드인 wr_1 을 쓸 경우 write.skin.php 에도 반드시 wr_1 이 존재해야 합니다.

그렇지 않으면 뷰페이지에서 바뀐 wr_1 여분필드가 글수정모드로 들어가게 되면 그 여분필드는 진공처리가 됩니다.

그러니 hidden 된 input 라도 글쓰기에서는 만들어 주어야 합니다.

 

[code]

<input type="hidden" name="wr_1" value="<?php echo $write['wr_1']; ?>">

[/code]

|

댓글 17개

깔끔한 설명과 좋은팁 감사해요^^
2022-12-09 (금) 14:20:30
@푸른산타 액션파일을 하나 만들면 간단하지만 본문이 액션파일이 되면서 다이렉트로 적용하는 문제인데 뭐 여분필드를 업뎃하는 기본로직과 약간의 잔대갈빡이지요.ㅋ
2022-12-09 (금) 16:23:59
공개해 주셔서 감사합니다.
2022-12-09 (금) 18:23:38
@브러운아이 감사합니다
감사 합니다.
2022-12-11 (일) 14:14:25
@들레아빠 감사합니다
2022-12-23 (금) 19:50:27
제가 찾고 있던 게 이겁니다..ㅠㅠㅠ 늘 한 수 배워갑니다
2022-12-23 (금) 23:37:14
@코드오타쿠 감사합니다
늘 감사합니다
2025-01-23 (목) 07:30:57

@오빠야 감사합니다 

감사합니다
2025-01-23 (목) 07:31:09

@삐돌이™ 감사합니다 

우와 드디어 찾았어요
2025-03-02 (일) 22:45:03

@온비

도움 되셨다니 다행입니다.

@비타주리 너무 감사합니다.  이제 만들 수 있는게 많아졌습니다. ㅎㅎ

2025-03-02 (일) 23:05:42

@온비

액션파일 하나 만들어서 아작스 처리하는걸 선호하는 분도 많습니다.

그래야 가령 게시글에 유튜브 등이 있다면 끊기지 않고 처음부터 재생되는 걸 막을 수 있으니까요.

개인적으로 저는 이 방식을 더 선호합니다.

전쳬가 딱 바뀌었다는 느낌이 전해지니까요.

안녕하세요 덕분에 너무 잘 활용했습니다! 제 경우 phpmyadmin에서 추가 필드생성 후 뷰페이지에서 이 코드를 적용했는데, 수정까지는 잘 적용됩니다. 근데 값을 지우고 저장시 적용이 안되고 기존값이 계속 입력되어있는데 어떤부분이 문제일까요ㅠ

댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
22-12-09 조회 4,792
22-12-09 조회 4,639
22-12-07 조회 3,513
22-12-06 조회 5,629
22-12-03 조회 5,637
22-12-02 조회 4,780
22-11-30 조회 7,584
22-11-25 조회 4,547
22-11-22 조회 4,320
22-11-20 조회 4,031
22-11-16 조회 5,600
22-11-15 조회 3,990
22-11-15 조회 4,783
22-11-14 조회 3,946
22-11-10 조회 4,988
22-11-08 조회 4,608
22-10-28 조회 4,787
22-10-27 조회 5,468
22-10-26 조회 4,308
22-10-25 조회 5,178
22-10-22 조회 4,474
22-10-19 조회 4,978
22-10-18 조회 3,918
22-10-16 조회 4,464
22-10-16 조회 4,495
22-10-12 조회 5,625
22-10-04 조회 6,294
22-09-28 조회 5,596
22-09-28 조회 4,629
22-09-27 조회 8,522