jqGrid 그리드 게시판, 다중검색, 다중분류, 엑셀저장, PDF 인쇄 기능 포함 > 그누보드5 스킨

그누보드5 스킨

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

jqGrid 그리드 게시판, 다중검색, 다중분류, 엑셀저장, PDF 인쇄 기능 포함 정보

게시판 jqGrid 그리드 게시판, 다중검색, 다중분류, 엑셀저장, PDF 인쇄 기능 포함

첨부파일

basic_grid.zip (7.3M) 1199회 다운로드 2018-11-19 00:27:36 포인트 차감10
테스트한 버전5.3.1.9
호환 가능 버전그누보드 5.3

본문

본 스킨은 그누보드 5.3.1.9 버젼으로  제작되었습니다.

 

데모사이트 : http://www.suu.kr/bbs/board.php?bo_table=grid

 

참고사이트 
Jquery Grid Plugin : http://www.trirand.com/blog/?page_id=6

TCPDF : https://tcpdf.org/ (폰트용량이 커서 불필요한 폰트는 모두 삭제하였으며, 다른 폰트가 필요하신분은 TCPDF사이트에서 다운로드 하세요.)

jqgrid 4,7 무료버전 : https://github.com/tonytomov/jqGrid/tree/v4.7.0


그누보드 게시판으로 제작된 그리드 게시판입니다. 
이전에 한번 제작을 하여 올렸으나 여러가지 오류나 검색 부분에 문제가 있어 이번에 다시 수정 및 보완하여 다시 올립니다.
엑셀파일과 인쇄를 필요로 하시는 분들이 계신것 같아 엑셀파일 다운로드와 PDF 저장 및 인쇄 기능을 추가하였습니다.
가로폭이 1000px에 맞도록 되어 있으니 더 작게 하실분은 검색박스만 수정하시면 됩니다.
그리드영역은 가로폭이 자동으로 변경됩니다.

 

 

::  파일 설명
grid : [폴더] 그리드 플러그인
jquery-ui-1.12.1 : [폴더] jquery 1.12.1 버젼
tcpdf : [폴더] pdf 플러그인
 _arr.php : 여분필드에 사용되는 값들에 대한 배열값이 들어 있습니다. ( 수정하시면 됩니다.)
_common.php : common,php 파일 경로가 설정이 되어 있으니 테마사용시 경로위치 수정하시면 됩니다.
delete_data.php : 리스트 화면에서 게시물 일괄삭제하는 파일입니다.
list.js : 그리드로 그려주는 파일입니다. (리스트화면 만들어줌)
list_data.php : 게시판의 DB  처리를 해주는 파일입니다. (리스트 또는 검색)
pdf_print.php : pdf 인쇄 및 저장
excel.php : 엑셀파일로 저장

 

 

:: 여분필드외 필드를 확장(wr_11....)하여 사용할 경우 아래의 파일을 모두 수정해야 합니다.
_arr.php : wr_1 ~ wr_10 각 필드의 기본값
list.js : 리스트페이지에서 보여지는 필드 항목등. 
list.skin.php : 게시판 리스트 페이지 - 검색 조건 추가나 수정시
list.data.php : 게시판 DB 처리 파일 
excel.php : 엑셀 출력
pdf_print.php : pdf 출력
view.skin.php : 뷰페이지
write.skin.php : 글쓰기 페이지

 

 

:: PDF 인쇄 여백, 용지방향, 상단 로고, 타이틀등 기본적인 설정 방법.
./tcpdf/config/tcpdf_config_grid.php 파일을 열어 자신의 원하는 정보로 수정해주시면 됩니다.

회사정보, 문서제목등은 pdf_print.php 파일 수정하세요.

로고는 ./tcpdf/images/ 에 있습니다.

 

 

:: 기본 특징
- 엑셀처럼 그리드 형태의 게시판입니다.
- 페이지 이동 방식이 아니며, 리스트를 올리면 자동으로 2페이지 리스트를 불러옵니다.
- 다중분류와 다중 검색을 지원하며, wr1 ~ wr_10번까지 사용할 수 있도록 되어 있고 추가도 가능합니다.
- 리스트화면에서 체크한 게시물을 일괄 삭제할 수 있습니다.
- 엑셀 저장, PDF 인쇄(저장)
- 생성된 게시판 DB TABLE의 여분필드 wr_1 ~ wr_10까지의 데이터타입은 필요시 변경하세요.
- 게시글 뷰화면(view.skin.php)과 게시글 작성화면(write.skin.php)은 디자인이 되어 있지 않습니다.
- 분류(ca_name)은 게시판설정에서 분류사용을 체크후 사용가능


그누보드 5.3.1.9 버젼으로 충분히 테스트하였으나 찾지 못한 오류가 있을 경우 알려주시면 수정하도록 하겠습니다.

 

PDF에서 사용되는 폰트때문에 용량이 큽니다.

추천
38

댓글 전체

네.. 맞습니다.ㅠㅠ

4.7 이후부터 회사명이 변경되면서 유료화가 되었습니다.
4.7 무료버전으로 사용하셔도 됩니다.

jqgrid 4,7 무료버전 : https://github.com/tonytomov/jqGrid/tree/v4.7.0
엑셀 업로드는 사용자마다 구성하는 방식이 다르기 때문에 별도로 제작은 안했습니다.
엑셀업로드 플러그인을 사용하면 어렵지 않게 구현가능할겁니다.

PHPExcel : https://github.com/PHPOffice/PHPExcel
좋은 자료 감사합니다
저는 설치 후 글저장 엑셀 PDF 다되는데 jqgrid에 리스트는 출력이 안되네요
예전 버젼 글 보고 list_data 에서 수정할려니 해당 내용이 없었습니다.
조언 부탁 드립니다.
그누보드 버젼은 5.3.2.0 입니다.
크롬 개발자툴(F12)에서 상단 "Network"를 확인해 보세요.
list_data.php 파일의 응답이 있는지 없는지 확인해보세요.

추가로 확인이 필요한 부분.
1. Headers의 Form Data 확인.
2.. 응답(Response) 또는 미리보기(Preview)에서 정상인지 확인.


작성한 글이 리스트에 정상적으로 보이지 않는다면 분명 어느 부분에서 에러가 표시될겁니다.

엑셀,인쇄 버튼이 안 보일까요? _common.php 경로를 바꿔 보면 데이타 리스트가 보이면 인쇄,엑셀 버튼이 안보이고 경로를 바꾸면 인쇄,엑셀 버튼이 보입니다...어떤게 문제일까요?
엑셀 인쇄버튼은 검색을 실행했을때만 보이도록 하였습니다.
테마를 사용중이면 상단의 _common.php의 경로를 설정해줘야 합니다.
네..검색을 하니 메뉴가 뜨네요 ^^
근데 엑셀 버튼을 클릭을 하니 근데 이런 에러가 나는데..뭐가 문제 일까요?.ㅠ
pdf는 제대로 되는것 같습니다.

$v) {$w1_v .= ",'".$v."'";}$w1 = substr($w1_v,1); // 첫번째 콤마(,) 제거 $sql_search .= " and wr_1 in (".$w1.") "; } // 여분필드2 검색 if($w2) {$sql_search .= " and wr_2 = '".$w2."' "; } // 여분필드3 검색 if($w3) {$sql_search .= " and wr_3 = '".$w3."' "; } // 여분필드4 검색 if($w4) {$sql_search .= " and wr_4 = '".$w4."' "; } // 여분필드5 검색 if($w5) {$sql_search .= " and wr_5 = '".$w5."' "; } // 여분필드6 검색 if($w6) {$sql_search .= " and wr_6 = '".$w6."' "; } // 여분필드7 검색 if($w7) {$sql_search .= " and wr_7 = '".$w7."' "; } // 여분필드8 검색 if($w8) {$sql_search .= " and wr_8 = '".$w8."' "; } // 여분필드9 검색 if($w9) {$sql_search .= " and wr_9 = '".$w9."' "; } // 여분필드10 검색 (입고일 구간 검색) if($fd10 && $td10) {$sql_search .= " and wr_10 between '".$fd10."' and '".$td10."' "; } $sidx = ($sidx)? $sidx:"wr_num, wr_reply"; $sord = ($sord)? $sord:"asc"; $sql_order = " order by {$sidx} {$sord} "; $sql = "selectcount(*) as cnt$sql_common$sql_search$sql_order "; $row = sql_fetch($sql); $total_count = $row[cnt]; $sql = " select*$sql_common$sql_search$sql_order"; $result = sql_query($sql); //echo $sql; // DB 쿼리 끝. $ti = str_replace("-","",G5_TIME_YMDHIS); $ti = str_replace(":","",$ti); $ti = str_replace(" ","_",$ti); header( "Content-type: application/vnd.ms-excel" ); header( "Content-Disposition: attachment; filename={$ti}_grid_list.xls" ); ?> 
Fatal error: Uncaught Error: Call to undefined function sql_fetch_array() in E:\xampp\htdocs\magok\theme\st-basic\skin\board\basic_grid\excel.php:159 Stack trace: #0 {main}thrown in E:\xampp\htdocs\magok\theme\st-basic\skin\board\basic_grid\excel.php on line 159
절대 경로 인가요?.."/magok/theme/st-basic/skin/board/basic_grid/_common.php" 이렇게 지정을 해야 하는 건가요?
경로를 다 바꾸어 보아도 똑 같은 현상이네요..ㅠ
제가.. 답변을 잘못했네요. "excel.php" 파일이 아니라
"_common.php" 파일을 열어 아래와 같이 변경해주세요,

include_once("../../../../../common.php");  // 테마사용시


지금 위 오류로 봐서는 그누보드 lib폴더에 있는 common.lib.php에 "sql_fetch_array" 함수가 존재할텐데... 존재하지 않거나 호출이 안된상태라고 나오는데..  이런 부분도 정상이라고 하면..

Stack trace~ 오류에 대해서 확인해 보셔야 할듯 합니다... ( 이 부분은 저도 잘 모르겠네요.)
저도 데이터 입력은 되어 있는데, 정작 검색을 하면 검색이 되지 않습니다.
그누보드 5.3.1.9이고, 그누보드의 기본 skin 폴더에 설치한 상태입니다.

지금 여러 번 확인을 해보았는데, _common.php 파일을 그대로 둔 상태(즉, include_once("../../../common.php"); 로 되어 있는 상태)에서 리스트 화면으로 가면 엑셀과 인쇄 버튼이 아예 나타나지 않으며, 검색 또한 되지 않습니다.
네트워크에서 확인해 보면 정상으로 나오는데, 정작 검색은 Fault로 나옵니다.

_common.php 파일에서 include_once("../../../common.php");를 include_once("./common.php"); 등과 같이 임의로 틀리게 변경을 해놓으면, 리스트 화면에서 검색 이전에도 엑셀과 인쇄 버튼이 나타나 있고 그 기능 또한 정상적으로 동작하는데, 정작 검색만큼은 여전히 되지 않습니다.
물론 네트워크에서 확인해 보면 에러가 나 있는 상태입니다.

참고로, 테마 폴더에 설치하고, _common.php 파일에서 include_once("../../../../../common.php"); 로 수정을 해보아도 결과는 마찬가지입니다.

나름대로 확인해 보았으나 여전히 리스트에는 아무 것도 나타나지 않네요.
무엇이 원인일지 파악하는 데 도움을 주시면 고맙겠습니다.
오류내용을 확인해봐야 할듯 합니다.
다운후 최신버전에서 확인해본 결과 정상적으로 실행됩니다.
쪽지 보냈으니 확인후 답장 주세요.
다행히도 원인을 알아내었고, 지금은 너무도 잘 동작하고 있습니다. ^^

루미집사 님께는 쪽지로 답신을 보냈으며, 혹시나 저와 같은 증상을 겪게 될지도 모를 다른 분들을 위해 원인과 해결 방법을 이곳에 남깁니다.

원인
제가 테스트 및 홈페이지 제작 등의 이유로 한 서버에 그누보드를 여러 개 설치(10개 이상)하여 사용 중이며, 서로 DB가 섞이지 않게 그누보드 설치 시에 각 그누보드마다 서로 다른 접두어로 시작하는 DB를 만들어 사용하고 있습니다.
이런 관계로 루미집사 님의 소스에서는 검색 시에 g5_write_ 로 시작하는 DB를 이용하는데, 정작 저는 다른 접두어로 시작하는 DB로 설정한 상태여서 검색이 되지 않는 증상이었습니다.

해결 방법
excel.php, list_date.php, pdf_print.php, 이 세 개의 파일에 있는 g5_werite_ 를 그누보드 설치 시에 제가 설정한 해당 접두어로 변경(저와 같이 그누보드 설치 시에 접두어를 g5가 아닌 다른 것으로 변경한 경우)해 주시면 검색, 인쇄, 엑셀 모두 잘 동작하게 됩니다.

 쪽지를 보내어 문제 해결을 위해 마음을 써주신 루미집사 님께도 감사의 마음을 전합니다. ^^
안녕하세요 루미집사님, 피앙세님 저도 피앙세님이랑 똑같은 현상으로 신규등록은 되는데 list에 데이터를 뿌려주지를 못하는거 같은데 말씀하신대로 제 DB명이 k01234라면
$sql_common = " from ko1234_write_".$bo_table; 이렇게 변경을 해도 뿌려주질 못하는데 이렇게 수정하는게 맞나요? 꼭 필요한 스킨이라서 ㅠㅠ 꼭 해결해서 사용하고 싶네요
지금 보니 제가 표현을 틀리게 했었네요.
위의 저의 글에서 DB라는 단어를 사용했는데, DB가 아니고 테이블이 맞습니다.
서로 다른 DB가 아니고, 하나의 DB에서 단지 테이블의 접두어를 다르게 해서 사용하고 있습니다. 로 정정합니다.

태자님께서 그누보드를 설치할 때, 테이블의 접두어로 ko1234로 설정한 게 맞으시다면, 위의 $sql 문은 제대로 변경하신 게 맞습니다.

설치 위치가 그누보드의 skin 폴더인지, 아니면 theme 폴더 안의 skin 폴더인지에 따라 _common.php를 include_once할 때의 경로가 서로 다르니, 이 부분을 다시 한 번 잘 확인해 보시는 어떨까 합니다.
list_data.php 파일에서 처리후 값을 넘겨주면 됩니다.
그리드에서 처리하는 여러가지 방법이 있습니다.
아래 사이트 방문후 데모 참고하시면 될듯 합니다.
http://trirand.com/blog/jqgrid/jqgrid.html#tabs-1
네... 그렇게 하면 됩니다.
여분필드 9 - 상품코드로 입력폼입니다.
여분필드10 - 상품입고일로 입력폼입니다.

여분필드 9, 10도 셀렉트박스처럼 옵션을 직접 선택하게 하려면 배열 추가 하여 사용하시면 되요.
글쓰기는 되는데, 검색해도 아무것도 안 뜨고, 인쇄나 엑셀 등을 누르면 HTTP ERROR 500 오류가 뜹니다.. 어떤 설정을 잘못한 걸까요?
리스트가 안뜨는 이유는 거의 자바스크립트 오류입니다.
개발자도구에서 확인 해보셔야 할듯 합니다.
오류 확인하기 어려울 경우 웹주소 알려주시면 확인해보도록 할게요.
스킨이 테마용으로 만들어지지 않아 파일들의 경로가 달라서 파일을 불러오지 못하는 증상인듯 합니다.
파일 열어서 경로 확인먼저 해보세요.
대부분 <?php echo $board_skin_url; ?> 으로 되어 있으니 테마 URL로 변경하시거나.

아니면 일반폴더에 올리고 게시판 관리자설정에서 스킨지정 해주면 될듯합니다.
그 부분과는 상관 없습니다.
list.skin.php에서 다른 여러가지 파일을 불러오는데 경로가 맞지 않아 발생되는 오류가 대부분입니다.

파일을 불러오는 경로가 잘 잡아주면 대부분 오류는 해결 됩니다.
아뇨.. 그 부분은 사용하진 않아요.
게시판 테이블의 여분필드를 사용합니다.
wr_1 ~ wr_10까지 사용합니다.

위 댓글에서도 설명드렸듯이..
_arr.php 파일에 여분필드에서 사용되는 옵션이 작성되어 있습니다.

// 여분필드1 - 창고
$WR1 = array(
"A" => "창고 A동",
"B" => "창고 B동",
"C" => "창고 C동",
"D" => "창고 D동",
"E" => "창고 E동",
"F" => "창고 F동"
);

위와 같은 식으로 되어 있으니...
창고 A동, 창고 B동. .... 이 부분만 수정해주시면 글작성시 수정된 옵션을 선택할 수 있도록 변경됩니다.

설치에 어려움 있으시면 원격으로도 도와드릴게요~
안녕하세요 해당 스킨 잘 사용하고 있습니다.
view 페이지에서 특정한 id 만 인쇄를 하고 엑셀로 저장,pdf로 인쇄를 하고 싶은데요

view 페이지에서는 어떻게 사용하면 좋을까요?
view 페이지에 인쇄, 엑셀 저장하기 위해서는 인쇄페이지나 엑셀내보내는 코드로 파일을 직접 만드시면 됩니다.

그누보드는 게시판 테이블명(bo_table)과  글번호(wr_id)만 있으면 인쇄페이지등을 쉽게 제작할 수 있습니다. (상단에 common.php를 불러온상태)

https://tcpdf.org/  - 홈페이지에 PDF 인쇄 샘플 자료 많으니 참고하시면 됩니다.
그래도, 어려움이 있으면 쪽지 주세요.
이런 소스 공유해주셔서 정말 감사합니다.

엑셀로 등어오는 데이터는 잘들어오는데 검색수0개로 나오고....
리스트에 뿌려주질 못하네요 ㅠㅠ 손볼 부분이 있을까요 ?? 고칠부분 조언좀 부탁드립니다...

list_data.php에서는 warning나오는데 sql은  잘 들어옵니다!..
Warning: Use of undefined constant cnt - assumed 'cnt' (this will throw an Error in a future version of PHP) in C:\AutoSet10\public_html\skin\board\basic_grid\list_data.php on line 98

Warning: Creating default object from empty value in C:\AutoSet10\public_html\skin\board\basic_grid\list_data.php on line 132

감사합니다...
해결하였습니다...

98번쨰줄 ..
$total_count = $row[cnt]; 에서 ..
$total_count = $row[$sql]; 로 수정..

132번째줄위에....
if(count($RST)>0) {  위에.. 한줄추가
 
$responce = new stdClass();//추가라인...
if(count($RST)>0) {
 감사합니다...

+ 이렇게하니 엑셀도 못뽑고 num도 손봐야해서.. 문제가 ㅠ
정말 죄송합니다만 루미집사님 ..시간나시면 한번 조언 부탁드립니다... 감사합니다
php 버전에 따른 오류군요. 
$row[cnt]로 사용이 되었지만 7.0부터는 배열표기법이 $row['cnt'] 방식으로 작은 따옴표로 감싸줘야 합니다. 그렇지 않으면 cnt 자체를 상수로 인식하고 cnt 상수로 선언된게 없어서 오류가 발생된겁니다.

위의 문제만 해결하면 다른부분에서는 오류발생되지 않을 거라 생각됩니다.
@$responce->page = $page; // 현재페이지 후에 검색버튼을 눌러도 엑셀,pdf 출력 버튼이 나오지않습니다.. 혹시 검색을 누르지않아도 바로 버튼이 뜰수있게 하는방법알려주시면 감사합니다.
가장 간단한 방법은 list.js 파일중 아래의 코드를 찾아서 수정해주시면 됩니다.


// 자료 불러오기 성공시 resetn 값과 records 값 체크
if(data.resetn=="Y" && data.records>0 && data.page==1) {
// 엑셀저장버튼 보여줌
$("#excel, #print").show();
} else {
// 엑셀저장버튼 숨김
$("#excel, #print").hide();
}


hide() 를 show()로 하면 항상 버튼을 표시합니다.
제가 확장필드를 wr_11  wr_12  를 추가 하여 사용하려고 하는대

write.skin.php 에
 <tr>
            <th>물건수량</th>
<td><input type="text" name="wr_11" id="wr_11" value="<?php echo $write['wr_11']; ?>" class="frm_input" /></td>
</tr>
<tr>

 <tr>
            <th>포장수량</th>
<td><input type="text" name="wr_12" id="wr_12" value="<?php echo $write['wr_12']; ?>" class="frm_input" /></td>
</tr>
<tr>


추가하고

view.skin.php  에

<tr>
<th>물건수량</th>
<td><?php echo $view['wr_11'] ?></td>
<th>포장수량</th>
<td><?php echo $view['wr_12'] ?></td>
<th>빈칸</th>
<td></td>
<th>빈칸</th>
<td></td>
</tr>
<tr>


추가 했는대

글쓰기 페이지에서 글을 쓰고
보기 페이지로 가서 확인해보면
입력한 값이 안나옵니다  다른 페이지도 수정을 더해야되나요?
기본적으로 wr_11, wr_12를 추가하였을 경우 write_update.tail.skin.php 추가로 생성하여 추가한 필드에 대하여 쿼리문 추가해주면 됩니다.

그리고, 리스트 화면에서 추가한 필드 내용을 확인하려면 list.js, list_data.php 파일 추가로 수정해줘야 합니다.
안녕하세요 리스트에 data를 뿌려주게 해결했고 엑셀에도 data값으로 나오게 해결했습니다
근데 인쇄에서 pdf파일로 넘어갔을 때 data가 pdf파일에 입력이 안되는거 같습니다 무슨 문제일까요? 너무 사용하고싶은 스킨이라 해답을 알려주시면 정말 감사하겠습니다!!
TDPDF 플러그인 사용가능하지를 먼저 체크해 보셔야 할듯 합니다.
https://tcpdf.org/ 홈페이지 방문후 플러그인을 다운로드후 서버에 업로드하여 샘플파일이 열리는지 확인해보세요.
네이버지도api 멀티마커 게시판을 퍼와서 운영중에 있는데요.
님이 만드신 그리드 게시판을 기존 멀티마커랑 통합하고 싶습니다.
님의 소스를 가져와서 얼추 합치기는 한거 같은데요.
멀티마커가 안되요~ ㅠㅠ 약간의 사례비를 드리고 제 소스 좀 수정해 주시면 안되요?
제꺼 호스팅 비번이랑 다 공개해 드릴게요.
님꺼 너무 사용해보고 싶어용
네이버지도 마커를 표시해주는 데이타가 게시판의 리스트의 정보를 뿌려주는듯 합니다.
그누보드 게시파의 경우 변수 "$list" 배열에 게시물의 정보가 담겨 있습니다.
그리드 게시판은 "$list" 배열을 사용하지 않고 list_date.php 파일에서 가져옵니다.
위의 내용이 맞다면 당연히 멀티마커를 표시하지 못하게 되는 것이죠.
list.js 파일에서 좌표를 받아 지도에 마커를 표시해주방법으로 시도해 보시는게 좋을듯 싶네요.

아래 검색결과를 참고하시기 바랍니다.

https://www.google.com/search?q=jqgrid+loadcomplete&oq=jqgrid+load&aqs=chrome.1.69i57j0l5.7724j0j4&sourceid=chrome&ie=UTF-8
네~ 님이 정확히 짚어주셨어요. 그누보드 게시판의 변수 $list 배열에서 가져와서 멀티마커 뿌려주고 있는데요. 이것때문에 당연히 멀티마커 표시가 안되는거 같아요. jqgrid 완전생초보라서.. ㅠㅠ list.js 파일에서 좌표를 받아 지도에 마커 표시하는 방법 한번 연구해볼게요~ 그래서 정말 못할것 같으면 수고비 드릴테니 좀 해주세용 ^^
그리드상에서 위도.경도.주소 등등은 자동으로 불러오는거 구현이 되었는데요. 여전히 그 값이 $list 배열과 다르다보니 멀티마커가 찍히질 않네요~ ㅠㅠ 루미집사님 수고비 챙겨드릴테니 load complete 함수써서 지도에 표시되게 의뢰해도 되나요?
좋은 스킨 감사 합니다.

신규입력화면에서 상품등록후 저장하면
올바른 방법으로 이용해주세요 라는문구 뜨고 저장이 안되네요
테스트 환경은
그누보드 5.3.2.8에
UTF-8 (PHP7.0, Mariadb-10.0.x) 입니다.

php버전이 문재일까요?
올바른 방법으로 이용해주세요 원인을 QnA에서 검색 해서 다해봤는데 안되어서 그누보드 버전을 5.3.1.9 으로 설치 했더니 되네요 잘쓰겠습니다.
혹시 이런에러는 어딜 보면되나요

Warning: Creating default object from empty value in /home/tech/public_html/skin/board/basic_grid/list_data.php on line 132
{"page":1,"total":1,"records":"1","para":{"bo_table":"07","sfl":"wr_subject","_search":"false","nd":"1556179765957","rows":"50","page":"1","sidx":"wr_num, wr_reply","sord":"asc"},"rows":[{"num":"1","wr_id":"1","ca_name":"","wr_subject":"\ud14c\uc2a4\ud2b8","wr_name":"\ucd5c\uace0\uad00\ub9ac\uc790","wr_datetime":"2019-04-25 17:05:47","wr_1":"\ucc3d\uace0 A\ub3d9","wr_2":"\uadf9\uc18c","wr_3":"\uad00\ub9ac 2\ud300","wr_4":"\ubd89\uc740\uc0c9","wr_5":"\uc2a4\ud14c\uc778\ub808\uc2a4","wr_6":"A\/S \uac00\ub2a5","wr_7":"\ubc30\uc1a1\uac00\ub2a5","wr_8":"500ml","wr_9":"12312","wr_10":"2019-04-25"}]}
list_data.php 파일 132라인에 보면 아래와 같은 코드가 있습니다.

$responce->page = $page; // 현재페이지

위 코드를 맨앞에 "@"를  붙여 주면 됩니다.

@$responce->page = $page; // 현재페이지
여분필드를 7개 추가하고 분류 부분을 삭제하여 데이타 디비에 올리고 리스트에 출력되는 부분까지는 모두 정상적으로 완료를 하였는데...
제목부분을 클릭하면 뷰페이지로 가지않고 리스트로 리턴되는 현상은 어느부분을 손보아야 할까요.

참고로 넘버. 데이타타임. 제목. 그리고 wr_1. wr_2.... wr_17 까지 순서로 칼럼을 짰습니다.
$WR1 = array(
"A" => "창고 A동",
"B" => "창고 B동",
"C" => "창고 C동",
"D" => "창고 D동",
"E" => "창고 E동",
"F" => "창고 F동"
);
에서 "G" => "창고 G동" 도 추가하면 어디를 손봐야 할까요? 초보적인 질문 죄송합니다 ㅠㅠ
저는 자료를 등록해도 리스트에 아무것도 안뜨는데요??
어디가 문제 일가요 ㅠ,ㅠ 어디 수정한것도 없는 그누보드 원본입니다.
아래와 같이 하니 리스트는 나오는데..

@$responce->page = $page; // 현재페이지

리스트 상단에서 검색을 해도 검색값이 안나오네요
검색값에도 골뱅이 다 붙이니 잘되네요
감사합니다.^^
잘쓸께용~~~~
안녕하세요~ 좋은 자료 가져갑니다. 질문이 있는데...이걸 응용해서, 학원 학생들 성적순위를 표시하고 싶은데요.....첨에보이는 순번..1 2 3 4 5 6 7 등이, 지금 게시물에서는 올린순서대로, 아래에 1 그담올리면 그 위로 2.....이런식으로 올라가는데, 이걸, 등수처럼 위에서부터 12345 이런식으로 가려면 어느 부분을 건드려야할지..조언 여쭙니다.
댓글에 언급한대로
크롬 개발자툴(F12)에서 상단 "Network"를 확인해 보면
list_data.php 파일의 응답이 아래와 같이 나오는데요.

Warning: Creating default object from empty value in /host/home3/sigx/html/theme/basic/skin/board/basic_grid/list_data.php on line 132

view에서는 이미지와 같이 입력내용이 정상적으로 출력이 됩니다.
조언 부탁합니다.


위에 @우띠님 댓글처럼 @$response하니 목록은 출력이 됩니다. 음~~
list_data.php 파일을 열어 아래의 코드를 찾으세요.

$RST= array_filter($RST); // 배열의 빈값을 모두 제거


위 코드 바로 아래줄에 다음 코드를 추가해 주세요.

$responce = new stdClass();
커스터마이징때문에 쪽지 보내려는데 포인트가 없어서 쪽지가 안보내지네요.
*** 개인정보보호를 위한 휴대폰번호 노출방지 *** 연락좀 부탁드립니다.
이제야 그누보드 5를 시작하게된 초보입니다.
이런 스킨을 만드시는 분은 정말 대단하군요.

이 게시판으로 간단하게 실적 게시판으로 하려고 합니다.
view 화면에서는 나오는데 list.js 에서는 안나옵니다.


처음이라서 도통 알 수가 없군요.
안녕하세요~
지금 확인을 해보니 wr_1 ~ wr_8 여분필드의 값이 "Null"입니다.

제 예상으로는 list_data.php 파일을 수정하지 않으신듯 합니다.
wr_1 ~ wr_8까지 모두 input의 타입이 text로 저장이 되더군요.

list_data.php 파일을 열어 하단 부분에서 아래의 코드를 찾으세요.

	$responce->rows[$i]['wr_1'] = $WR1[$rs['wr_1']];
	$responce->rows[$i]['wr_2'] = $WR2[$rs['wr_2']];
	$responce->rows[$i]['wr_3'] = $WR3[$rs['wr_3']];
	$responce->rows[$i]['wr_4'] = $WR4[$rs['wr_4']];
	$responce->rows[$i]['wr_5'] = $WR5[$rs['wr_5']];
	$responce->rows[$i]['wr_6'] = $WR6[$rs['wr_6']];
	$responce->rows[$i]['wr_7'] = $WR7[$rs['wr_7']];
	$responce->rows[$i]['wr_8'] = $WR8[$rs['wr_8']];
	$responce->rows[$i]['wr_9'] = $rs['wr_9'];
	$responce->rows[$i]['wr_10'] = $rs['wr_10'];


위 코드를 아래의 코드로 변경해 보시기 바랍니다.


$responce->rows[$i]['wr_1'] = $rs['wr_1'];
$responce->rows[$i]['wr_2'] = $rs['wr_2'];
$responce->rows[$i]['wr_3'] = $rs['wr_3'];
$responce->rows[$i]['wr_4'] = $rs['wr_4'];
$responce->rows[$i]['wr_5'] = $rs['wr_5'];
$responce->rows[$i]['wr_6'] = $rs['wr_6'];
$responce->rows[$i]['wr_7'] = $rs['wr_7'];
$responce->rows[$i]['wr_8'] = $rs['wr_8'];
$responce->rows[$i]['wr_9'] = $rs['wr_9'];
$responce->rows[$i]['wr_10'] = $rs['wr_10'];


위 처럼 변경하면 해결 될거라 생각됩니다.
그래도 안된다면 다시한번 댓글 남겨주세요.


프로그램쪽에 초보라 질문좀 드립니다.

footer에  금액의 합계를 적용할려고


이미지와 같이 푸터영역만 설정이 되고 그 안에 합계값이 표시가 되지 않습니다.
어디가 문제일까요..
루미집사님의 도움이 절실히 필요합니다.

https://thatisgood.tistory.com/entry/jqGrid 를 참고했고
수정한 부분은 아래와 같습니다.



--------------------------------------------
1. colModel:[ 안에 아래와 같이 추가

{name:'wr_5',index:'wr_5', width:70, align:'right',formatter: 'integer', formatoptions:{thousandsSeparator:","}, summaryType:'sum', summaryTpl: 'Totals :'},

------------------------------------------------
2. loadComplete : function(data) 내에 아래와 같이 추가 했습니다.
var moneySum = $("#list2").jqGrid('getCol','wr_5', false, 'sum');
$("#list2").jqGrid('footerData', 'set', { crateName:'합계', money:moneySum m });

-----------------------------------------------
3. $("#list2").jqGrid 내에 추가
footerrow: true, // 총합표시
userDataOnFooter : true, // 총합표시
위 1,2,3번 모두 원래대로 되돌려 주시고 아래의 방법으로 다시 시도해 보시기 바랍니다.

list.js 파일을 열어 아래의 코드를 찾으세요. 
gridview : true,


위 코드 아래에 아래의 코드를 추가해줍니다.

colTotals: true,		
footerrow: true, 
userDataOnFooter: true, 


list_data.php 파일에서 각 합계를 구해서 아래처럼 코드를 추가해주면 됩니다.
합계를 내는 코드는 직접 만드셔야 합니다.

$responce->userdata['wr_5'] = "wr_5 합계금액";
$responce->userdata['wr_6'] = "wr_6 합계금액";
$responce->userdata['wr_7'] = "wr_7 합계금액";
$responce->userdata['wr_8'] = "wr_8 합계금액";
루미집사님 정말 좋은 자료 감사합니다.
혹시 검색한 리스트에서 체크된것만 엑셀출력하는 방법 좀 알수 있을까요?
고수님들 알고계시면 답변 부탁드립니다.
체크된 자료만 추출하는 방법은 아래의 코드를 활용하시면 됩니다.


var data = $("#list2").jqGrid('getGridParam','selarrrow');
console.log(data); // 콘솔 확인


제가 사용하는 코드는 아래와 같습니다.
체크한값을 구한후 form을 생성하여  ans_excel.php 파일로  POST  전송하여 엑셀파일로 저장하는 방식입니다.

function excel_download (method){
    var data = $(Grid.list).jqGrid('getGridParam','selarrrow');  // 선택된 자료
	var inputs = '<input type="hidden" name="ids" value="'+ data +'" />'; 
    jQuery('<form action="ans_excel.php" method="'+ (method||'post') +'">'+inputs+'</form>').appendTo('body').submit().remove();
};
안녕하세요.
루미집사님의 자료를 받고 지금 적용을 해보고 있는데요.
처음부터 이미지의 내용대로 경고문이 뜨는데 이건 어딜 중점적으로 봐야 하는걸까요?
루미집사님 감사합니다 ^^ 덕분에 그 부분은 해결이 되었습니다..
그런데 창에서 출력이 안나오네요.. 일단 위에 있는 부분을 모두 체크를 해볼 예정입니다.
다시한번 답변을 주셔서 감사합니다 ^^
루미집사님 출력은 되는데.. 검색을 설정해놓으면 검색 결과가 원하는데로 안나오는 경우에는 어떤것을 보아야 하는걸까요?
일단 저희가 쓸려는 환경은 얼추 맞춘 상황인데 어떤게 문제인지.. 초보 입장에서는 너무 어려운 문제라서요 ㅠㅠ
검색조건을 list_data.php 파일로 POST 전송합니다.
첨부이미지처럼 검색조건이 하나가 아닌 다수를 선택해서 쿼리를 실행햐 하기 때문에 체크된 값을 가공하여 배열로 넘겨줘야  됩니다.

제가 올린 원본 기준으로 설명을 드리자면 "창고위치"를 다수를 선택하여 검색하도록 되어있습니다.

list.js 파일을 보면 아래 와 같은 코드가 있습니다.

w1 : function() {
	var id = $("#fm_search2 input[name='w1[]']:checkbox:checked").map(function() {
		return $(this).val();
	}).get();
	return id;
},


위 코드처럼 검색조건에서 체크된 값을 배열로 가공을 해줘야 합니다.
위 코드는 총 2군데 작성되어 있으니 그것을 참고하여 다른 필드 검색조건또한 동일하게 작성해주면 됩니다.
감사합니다.. 정말 많은 도움 될것 같습니다..

그런데 댓글중에 상용제품 문구가 눈에 띄는데요

 첨부 파일만으로는 계속 사용 힘든건가요?

아래 무료버전 적용하면 된다고 하셨는데
--------
jqgrid 4,7 무료버전
------------

적용은 어떻게 해야 할까요?.. 들여다 보는데 도통 잘 모르겠습니다.
안녕하세요. 루미집사님..^^
꼭 필요한 스킨이었는데 사용할 수 있게 되어서 정말 감사합니다.
초보라 설치후 다른 부분들은 문제가 없는데 인쇄버튼을 누르면 에러가 떠서
실행이 안되네요. 혹시나 해결방법이 있을까 해서 질문을 올립니다.
아래 에러 메세지를 올려봅니다.
혹시나 시간이 되시면 해결할수 있는 방법이나 팁이 있으면 좀 부탁드리겠습니다..~~
늘 건강하시고 좋은 스킨 만들어 주셔서 진심으로 감사드립니다.

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 32 bytes) in /home/accord19/coronatc52/www/gnu5/skin/board/basic_grid/tcpdf/fonts/cid0kr.php on line 15
메모리 허용치를 넘었다는 메세지인듯 합니다.
상단에 아래코드를 추가하여 다시 해보세요.


ini_set("memory_limit" , -1);


또는 테스트 중인 URL 알려주시면 확인해보록 하겠습니다.
안녕하세요
어제 밤부터 이거 해결하고 있는데 더이상 하다가 회사에서 짤릴것 같아서 도움요청합니다.
너무 길어서 해결되면 삭제하겠습니다.

엑셀로 업로드 하였는데 데이터는 W1~W10까지 들어가 있는데
grid 스킨에서 섹렉트로 들어간 데이터 W3~W5까지 못읽어 들이고 W10번을 날짜형식으로 사용하는데 역시 읽어 들이지 못하고 있습니다.

아래 PHPExcel 중 어디를 수정해야 하나요???
 $data->read($file);

    /*


    $data->sheets[0]['numRows'] - count rows
    $data->sheets[0]['numCols'] - count columns
    $data->sheets[0]['cells'][$i][$j] - data from $i-row $j-column

    $data->sheets[0]['cellsInfo'][$i][$j] - extended info about cell

        $data->sheets[0]['cellsInfo'][$i][$j]['type'] = "date" | "number" | "unknown"
            if 'type' == "unknown" - use 'raw' value, because  cell contain value with format '0.00';
        $data->sheets[0]['cellsInfo'][$i][$j]['raw'] = value if cell without format
        $data->sheets[0]['cellsInfo'][$i][$j]['colspan']
        $data->sheets[0]['cellsInfo'][$i][$j]['rowspan']
    */

    error_reporting(E_ALL ^ E_NOTICE);


$write_table = "g5_write_{$bo_table}";

    for ($i = 2; $i <= count($data->sheets[0]["cells"]); $i++) { //$i == 몇번째 라인부터 등록할건지
        $total_count++;

if($_POST[ex_type] == "2"){
$wr_id  = addslashes($data->sheets[0]['cells'][$i][2]);    //wr_id
$date    = addslashes($data->sheets[0]['cells'][$i][3]);    //date
$wr_subject    = addslashes($data->sheets[0]['cells'][$i][4]);    //필드1
$wr_1    = addslashes($data->sheets[0]['cells'][$i][5]);    //필드1
$wr_2    = addslashes($data->sheets[0]['cells'][$i][6]);    //필드2
$wr_3    = addslashes($data->sheets[0]['cells'][$i][7]);    //필드3
$wr_4    = addslashes($data->sheets[0]['cells'][$i][8]);    //필드4
$wr_5    = addslashes($data->sheets[0]['cells'][$i][9]);    //필드5

$wr_6    = addslashes($data->sheets[0]['cells'][$i][10]);    //필드6
$wr_7    = addslashes($data->sheets[0]['cells'][$i][11]);    //필드7
$wr_8    = addslashes($data->sheets[0]['cells'][$i][12]);    //필드8
$wr_9    = addslashes($data->sheets[0]['cells'][$i][13]);    //필드9
$wr_10  = addslashes($data->sheets[0]['cells'][$i][14]);    //필드10

$sql = " update {$write_table}
set wr_subject = '$wr_subject',
wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10'
where wr_id = '$wr_id' ";

sql_query($sql);

}else{

$mb_id = $member['mb_id'];
$wr_name = $member['mb_nick'];
$wr_password = $member['mb_password'];
$wr_email = $member['mb_email'];
$wr_homepage = $member['mb_homepage'];

$wr_num = get_next_num($write_table);
$wr_reply = '';

$wr_subject    = addslashes($data->sheets[0]['cells'][$i][2]);    //필드1
$wr_1    = addslashes($data->sheets[0]['cells'][$i][3]);    //필드1
$wr_2    = addslashes($data->sheets[0]['cells'][$i][4]);    //필드2
$wr_3    = addslashes($data->sheets[0]['cells'][$i][5]);    //필드3
$wr_4    = addslashes($data->sheets[0]['cells'][$i][6]);    //필드4
$wr_5    = addslashes($data->sheets[0]['cells'][$i][7]);    //필드5

$wr_6    = addslashes($data->sheets[0]['cells'][$i][8]);    //필드6
$wr_7    = addslashes($data->sheets[0]['cells'][$i][9]);    //필드7
$wr_8    = addslashes($data->sheets[0]['cells'][$i][10]);    //필드8
$wr_9    = addslashes($data->sheets[0]['cells'][$i][11]);    //필드9
$wr_10  = addslashes($data->sheets[0]['cells'][$i][12]);    //필드10

$sql = " insert into $write_table
                set wr_num = '$wr_num',
                    wr_reply = '$wr_reply',
                    wr_comment = 0,
                    ca_name = '$ca_name',
                    wr_option = '$html,$secret,$mail',
                    wr_subject = '$wr_subject',
                    wr_content = '$wr_subject',
                    wr_link1 = '$wr_link1',
                    wr_link2 = '$wr_link2',
                    wr_link1_hit = 0,
                    wr_link2_hit = 0,
                    wr_hit = 0,
                    wr_good = 0,
                    wr_nogood = 0,
                    mb_id = '$mb_id',
                    wr_password = '$wr_password',
                    wr_name = '$wr_name',
                    wr_email = '$wr_email',
                    wr_homepage = '$wr_homepage',
                    wr_datetime = '".G5_TIME_YMDHIS."',
                    wr_last = '".G5_TIME_YMDHIS."',
                    wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                    wr_1 = '$wr_1',
                    wr_2 = '$wr_2',
                    wr_3 = '$wr_3',
                    wr_4 = '$wr_4',
                    wr_5 = '$wr_5',
                    wr_6 = '$wr_6',
                    wr_7 = '$wr_7',
                    wr_8 = '$wr_8',
                    wr_9 = '$wr_9',
wr_10 = '$wr_10'";

sql_query($sql);

$wr_id = sql_insert_id();

// 부모 아이디에 UPDATE
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

// 새글 INSE
이렇게 봐서는 어디가 잘못되었는지 확인이 불가합니다.
어디에서 잘못되었느지부터 찾아야 하는게 중요합니다.

쪽지 확인 하세요.
안녕하세요 루미집사님 답변주셔서 감사 드립니다....
어제 에러문제로 문의를 드렸는데 다시 한번 확인해주시길 부탁드립니다....^^

제가 현재 테스트중인 게시판 URL 주소랍니다.
http://coronatc.woobi.co.kr/gnu5/bbs/board.php?bo_table=status

* 아래 해결방법으로 테스트 해보시라고 답변주셨는데 제가 자세한 에러상황을 말씀못드린 것 같아서 다시 문의를 드립니다. 게시판에서 인쇄 버튼을 누르면 위와 같은 에러메세지가 뜨더라구요.
아래 코드는 어느 파일 상단에 붙이면 되는건지 아니면 다른 문제가 있는 건지 한번 살펴봐 주시면 감사하겠습니다~~

ini_set("memory_limit" , -1);
죄송합니다 에러메세지를 빠뜨려서 다시 작성합니다..^^!!

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 32 bytes) in /home/accord19/coronatc52/www/gnu5/skin/board/basic_grid/tcpdf/fonts/cid0kr.php on line 15
여분필드 값을 추가하면 빈페이지로 뜨네여;;;

$WR2 = array(
"1" => "극소",
"2" => "소",
"3" => "중",
"4" => "대"
"5" => "특대"
);

"5" => "특대" 를 추가했더니 화면이 빈화면으로 나오고요.
PHP버전은  7.2 입니다.
코드를 잘못 작성하셨네요.
콤마(,)가 하나 빠져있습니다.
 "4" => "대" 를  "4" => "대",  으로 마지막에 콤마를 하나 붙여 주세요.



$WR2 = array(
    "1" => "극소",
    "2" => "소",
    "3" => "중",
    "4" => "대",
    "5" => "특대"
);
염치 불구하고 문의드립니다.
wr3값에 1500을 입력하고 wr4 값에 30% 할인된 금액이 나오게 하고 싶은데.. 초보라 모르겠습니다. ㅜㅡㅜ
혹시 가능하시면 답변 부탁드리겠습니다.
루미님 정말 감사합니다:-) 간편하게 설정하여 사용 중입니다^^
근데 저도 위에 분처럼 기타검색에 필드값을 넣고
검색버튼을 클릭하면 잘되는데 Enter를 치면 "존재하지 않은 게시판"이라고 나옵니다.

값은 아래 이미지처럼 나오구요.. 어디 쪽을 살펴보면 좋을까요? 조언 부탁드립니다 ㅠㅠ
그누보드 5.3.3 버전이고
Thema  폴더에서 테마를 적용중입니다.

http://yabsilkim.iwinv.net/gn/bbs/board.php?bo_table=grid

인쇄 및 프린트 기능은 정사적으로 작동하는데

그리드 리스트가 뜨지않으며 검색또한 되지 않습니다..

테마 문제인 것 같은데 이 경우 어떻게 해야할까요
제목을 눌러 뷰페이지에 들어가면 경로가 /board.php?bo_table= 이런식으로 나오면서 404에러가 뜹니다. 앞에 bbs를 붙여주니 정상적으로 나오는데 어디를 수정해야 하는지 알려주실 수 있나요?
리스트 출력시..이미지로 불러오는 방법을 알고싶습니다.

data.php 하단 while($rs=sql_fetch_array($result)) { 구문안에 조건문을 넣고자 합니다.

예를 들어

$responce->rows[$i]['wr_9'] = $rs['wr_9']; 대신에...

$responce->rows[$i]['wr_9'] = $img; 로 바꾸고요.

조건문을 작성하려고 하는데요..

if($rs[wr_9] == '1'){
$img = 가져오는 이미지 경로;
} else {
$img=$rs[wr_9];
}


이렇게 한다고 했을때....이미지는 그리드스킨 폴더/img 폴더에 있다면..
경로작성을 어떻게 해야 하나요?

당췌 불러와 지지가 않네요..

조언 좀 부탁드립니다.
아직 답변을 주실까요?
 wr_data 같은 데이터에서 일부만 가져오려고 하는데
wr_data[data]이런식으로 하면 데이터를 못가져 오내요..
뭘 변경해야할지... 알려주셨으면 좋겠는데...
https://gdseng.co.kr/bbs/board.php?bo_table=basic_grid

엑셀에서 다운로드 하거나 그럼 목록이 나오는데 목록에서는 안보입니다.
혹시 무엇이 문제 일까요?!

안녕하세요

여기 댓글보면서 참고하는데 초보라 도무지 어떻게해야할지 모르겠네요.

게시글 작성하면 

ed8bc7805627b9b05079f109478aba42_1701953520_7391.jpg

Warning: Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP) in /host/home2/dkfnc6106/html/skin/board/basic_grid/view.skin.php on line 203

 

이미지와같이 오류메세지가 나오고 리스트는 아무런 글도 안뜹니다.

답변주시면 감사하겠습니다. ㅜㅜ

전체 2,423 |RSS
그누보드5 스킨 내용 검색

회원로그인

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