2026, 새로운 도약을 시작합니다.

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

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

그누에는 회원 여분필드와 게시판 여분필드와 게시글(댓글 각각 포함) 여분필드의 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개

깔끔한 설명과 좋은팁 감사해요^^
@푸른산타 액션파일을 하나 만들면 간단하지만 본문이 액션파일이 되면서 다이렉트로 적용하는 문제인데 뭐 여분필드를 업뎃하는 기본로직과 약간의 잔대갈빡이지요.ㅋ
공개해 주셔서 감사합니다.
@브러운아이 감사합니다
감사 합니다.
@들레아빠 감사합니다
제가 찾고 있던 게 이겁니다..ㅠㅠㅠ 늘 한 수 배워갑니다
@코드오타쿠 감사합니다

@오빠야 감사합니다 

@삐돌이™ 감사합니다 

우와 드디어 찾았어요

@온비

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

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

@온비

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

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

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

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

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

댓글 작성

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

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 3일 전 조회 112
2740 4일 전 조회 104
2739 1주 전 조회 209
2738 1주 전 조회 217
2737 1주 전 조회 181
2736 1주 전 조회 280
2735 3주 전 조회 281
2734 3주 전 조회 263
2733 1개월 전 조회 265
2732 1개월 전 조회 301
2731 1개월 전 조회 267
2730 1개월 전 조회 226
2729 1개월 전 조회 356
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 256
2725 1개월 전 조회 330
2724 1개월 전 조회 360
2723 1개월 전 조회 267
2722 1개월 전 조회 300
2721 1개월 전 조회 211
2720 2개월 전 조회 304
2719 2개월 전 조회 307
2718 2개월 전 조회 202
2717 2개월 전 조회 336
2716 2개월 전 조회 202
2715 2개월 전 조회 312
2714 2개월 전 조회 273
2713 2개월 전 조회 376
2712 2개월 전 조회 289
🐛 버그신고