입력항목이 많은 양식을 게시판으로 만드는 팁 > 그누보드5 팁자료실

그누보드5 팁자료실

입력항목이 많은 양식을 게시판으로 만드는 팁 정보

입력항목이 많은 양식을 게시판으로 만드는 팁

첨부파일

json.extend.php (1.7K) 43회 다운로드 2018-10-02 12:10:21

본문

그누보드에서는 기본적으로 wr_1~wr_10의 추가필드를 제공합니다.

하지만 입력양식을 만들다 보면 항목이 많은경우 테이블 구조를 변경해야하는 수준까지 수정을 해야하는 경우가 생길 수 있습니다.

이런경우 검색으로 사용해야하는 특정 필드만을 wr_1~wr_10으로 배정하고 나머지 일반적인 항목을 wr_content 필드에 모두 넣어서 사용할 수 있는 방법 입니다.

 

1. json_encode / json_decode가 지원되어야 합니다.

2. 검색해야 하는 필드들은 반드시 wr_1~wr_10 필드를 사용합니다.

3. 입력항목들 모두를 json 데이터로 만들어 wr_content에 저장합니다.

 

-----------------------------------------------------------------------------------

/* write.skin.php */

-----------------------------------------------------------------------------------

/* 첫부분에 wr_content 필드를 파싱하도록 합니다. */

$json_content = json_decode_custom($write['wr_content']);
$json_data = array();
foreach($json_content AS $item) {
    $json_data[$item['name']] = $item['value'];
}

/* 다음의 형태로 입력필드를 구성할 수 있습니다.

<input type="text" name="call_no" value="<?php echo $json_data['call_no'] ?>" id="call_no" required class="frm_input full_input required" placeholder="연락처"> */

 

/* 저장시 json으로 wr_content에 저장하기 위하여 form의 onsubmit을 다음과 같이 수정합니다. */

<form name="fwrite" id="fwrite" action="..." onsubmit="return submit_fwrite(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:...">
/* javascript를 만듭니다. : json으로 처리후 원래의 onsubmit을 호출합니다. */

function submit_fwrite(form)
{
    $('#wr_content').val(JSON.stringify($('#fwrite').serializeArray()));
    return fwrite_submit(form);
}
 

-----------------------------------------------------------------------------------

/* view.skin.php */

-----------------------------------------------------------------------------------

/* 첫부분에 wr_content 필드를 파싱하여 양식에 맞게 데이터를 출력 합니다. */

json_content = json_decode_custom($view['wr_content']);
$json_data = array();
foreach($json_content AS $item) {
    $json_data[$item['name']] = $item['value'];
}
 

json.extend.php를 첨부합니다.

php5.3이상에선 json_encode가 잘 작동하지만.. 이쪽이 더 원활한 것 같습니다.

 

추천
2

댓글 4개

좋은 팁 감사합니다
계산을 해야 하는 경우가 많은데 그런 경우도 모두 content에 집어넣고 가능한가요? 그리고 필드 200개나 만든거보다 훨씬 효율적인가요?
검색은 검색할 항목을 지정하고 조회해야 하기때문에 확장필드가 필요합니다.
200개 필드 파싱도 크게 늦진 않을것이구요. 서버측에서 부하가 걱정되신다면 javascript에서 json을 파싱하여 사용하여도 됩니다.
이 팁의 좋은점은 write_update.php의 수정없이 skin에서 모두 처리 할 수 있다는 것입니다.
계산같은 경우는 submit된 데이터도 파싱하여 계산할 수 있고 javascript에서 계산하고 serialize 하여 전송할 수도 있으므로 문제가 되지 않는다고 생각합니다.
흥미로운 방식이네요
혹시 입력 부분은 어떻게 구성이 될까요?
일반 사용자도 입력이 가능하게끔
보여줄수가 있을까요??
전체 2,427 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT