묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
스킨에서 foreach as 오류...
2011.03.09 18:14
$output = executeQuery('communication.getChat',$args);
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', count($output->data));
Context::set('chat_list', $output->data);
제가 사용한 코드를 간단하게 줄여보자면 위와 같습니다.
보시면 DB에서 sql질의를 한 후 받은 결과값을 템플릿으로 전송하고
스킨 파일에서는 foreach as를 이용하여 아래와 같이 출력하고 있습니다.
<!--@foreach($chat_list as $val)-->
<tr>
<td class="nowrap wide">{$val->content} / {$val->message_type} / {$other_nick_name}</td>
<td class="nowrap"><span class="regdate">{zdate($val->regdate,"Y-m-d H:m:s")}</span></td>
</tr>
<!--@end-->
문제는 DB에서 얻은 결과값의 개수가 0개이거나 2개이상이면 정상적으로 출력이 됩니다.
하지만 1개일 경우에는 foreach로 데이터를 받아오지 못하면서 지 멋대로 루프가 10번가량 돌아버립니다.
즉, $val->content 로는 데이터를 받아오지 못하고 $chat_list->content를 해야만 데이터를 받아올 수 있더군요.
그래서 비어있는 데이터로 <tr>~~</tr>가 10번 가량 화면에 출력이 됩니다.
무엇이 문제인가요?
foreach가 원래 그런가요?
현재는 if문을 이용하여 결과값을 개수가 1개일때는 $chat_list->content 와 같은 식으로 출력하도록 사용하고는 있습니다만,
foreach만으로 해결이 되지 않는다는게 걸리적거리네요.
혹시 원인을 아시는 분 계시면 조언 부탁드려요.
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', count($output->data));
Context::set('chat_list', $output->data);
제가 사용한 코드를 간단하게 줄여보자면 위와 같습니다.
보시면 DB에서 sql질의를 한 후 받은 결과값을 템플릿으로 전송하고
스킨 파일에서는 foreach as를 이용하여 아래와 같이 출력하고 있습니다.
<!--@foreach($chat_list as $val)-->
<tr>
<td class="nowrap wide">{$val->content} / {$val->message_type} / {$other_nick_name}</td>
<td class="nowrap"><span class="regdate">{zdate($val->regdate,"Y-m-d H:m:s")}</span></td>
</tr>
<!--@end-->
문제는 DB에서 얻은 결과값의 개수가 0개이거나 2개이상이면 정상적으로 출력이 됩니다.
하지만 1개일 경우에는 foreach로 데이터를 받아오지 못하면서 지 멋대로 루프가 10번가량 돌아버립니다.
즉, $val->content 로는 데이터를 받아오지 못하고 $chat_list->content를 해야만 데이터를 받아올 수 있더군요.
그래서 비어있는 데이터로 <tr>~~</tr>가 10번 가량 화면에 출력이 됩니다.
무엇이 문제인가요?
foreach가 원래 그런가요?
현재는 if문을 이용하여 결과값을 개수가 1개일때는 $chat_list->content 와 같은 식으로 출력하도록 사용하고는 있습니다만,
foreach만으로 해결이 되지 않는다는게 걸리적거리네요.
혹시 원인을 아시는 분 계시면 조언 부탁드려요.
글쓴이 | 제목 | 최종 글 |
---|---|---|
XE | 공지 글 쓰기,삭제 운영방식 변경 공지 [16] | 2019.03.05 by 남기남 |
하늘편지2 | 최근게시물 출력위젯에 확장변수 [1] | 2013.02.27 by 송동우 |
모앱 | 회원가입 오류;; | |
natura | insertDocument 문의 | |
테너유긍정 | 설치도중(?) 후에(?) 이렇게 나옵니다. | |
color77 | 최신xe에서 패스워드 암호부분 sha1로 바꾸려면 어디를수정하면되나요? [1] | 2013.02.27 by sejin7940 |
XE만세 | 게시글 내용이 길어질 경우 내용이 안보입니다.. | |
천제아 | 그런데 처음 설치할때 그냥 xe 없이 설치하면 안되나요? [3] | 2013.02.27 by 컴토피아 |
4rfv5tgb6yhn | 위젯스타일 질문입니다 [2] | 2013.02.27 by 4rfv5tgb6yhn |
박컴맹 | 익명게시판 사용을 해도 서명란이 보이게 하고 싶습니다. | |
5duck! | 뻘 질문인데요.. 내 홈피 위젯을 다른 게시판에서 불러오는건 안될까요? [2] | 2013.02.27 by 5duck! |
david7 | 홈페이지 비밀번호 분실했습니다 [3] | 2013.02.27 by 송동우 |
꿀꺽2 | XE 게시판에서 본문 하단의 모든 것을 안보이게 [1] | 2013.02.27 by sejin7940 |
EvangelineA.K.Macdowell | 게시물 내용 중 특정 부분을 찾아서 일괄수정하고 싶어요! [1] | 2013.02.27 by 송동우 |
JULIE | [초보] 설치후 게시판모듈 업뎃이 안되어요...ㅠ_ㅠ | |
찌이 | 로그인할때 [1] | 2013.02.27 by 푸시아 |
딸꾹질 | 관리자화면에서 회원 포인트를 출력하고싶습니다. [3] | 2013.02.27 by 딸꾹질 |
몽실아빠 | SSL 모바일에서 사용안하는 방법 ? [1] | 2013.02.27 by EvangelineA.K.Macdowell |
몽실아빠 | 페이스북 좋아요 박스 만드는 방법 ? | |
쌈국지 | 템플릿문법으로 만든 변수를 넘길수가 있을까요? [1] | 2020.03.14 by BNU |
이지매니아 | 확장변수에 기본값 0은 입력이 안되나요? |
원인을 알았습니다.
query에서 navigation 구문과 연계가 되네요.
위에서 처럼 foreach 오류가 났을 때는 navigation을 아래와 같이 작성하였습니다.
<navigation>
<index var="sort_index" default="regdate" order="desc" />
<list_count var="list_count" default="10" />
</navigation>
그런데 아래와 같이 수정하였더니 foreach가 잘 작동하네요.
<navigation>
<index var="sort_index" default="regdate" order="desc" />
<list_count var="list_count" default="10" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
페이지가 필요없다고 생각해서 빼버렸더니..xe에서 처리하는 구문과 연계가 안되었었나보네요.