그누보드의 메뉴를 PHP Array로 만드는 방법 채택완료
head.php에 있는 메뉴 불러오기 부분입니다.
</p><p> <nav id="gnb"></p><p> <h2>메인메뉴</h2></p><p> <ul id="gnb_1dul"></p><p> <?php</p><p> $sql = " select *</p><p> from {$g5['menu_table']}</p><p> where me_use = '1'</p><p> and length(me_code) = '2'</p><p> order by me_order, me_id ";</p><p> $result = sql_query($sql, false);</p><p> $gnb_zindex = 999; // gnb_1dli z-index 값 설정용</p><p> </p><p> for ($i=0; $row=sql_fetch_array($result); $i++) {</p><p> ?></p><p> <li class="gnb_1dli" style="z-index:<?php echo $gnb_zindex--; ?>"></p><p> <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a></p><p> <?php</p><p> $sql2 = " select *</p><p> from {$g5['menu_table']}</p><p> where me_use = '1'</p><p> and length(me_code) = '4'</p><p> and substring(me_code, 1, 2) = '{$row['me_code']}'</p><p> order by me_order, me_id ";</p><p> $result2 = sql_query($sql2);</p><p> </p><p> for ($k=0; $row2=sql_fetch_array($result2); $k++) {</p><p> if($k == 0)</p><p> echo '<ul class="gnb_2dul">'.PHP_EOL;</p><p> ?></p><p> <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li></p><p> <?php</p><p> }</p><p> </p><p> if($k > 0)</p><p> echo '</ul>'.PHP_EOL;</p><p> ?></p><p> </li></p><p> <?php</p><p> }</p><p> </p><p> if ($i == 0) { ?></p><p> <li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?>
<a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li></p><p> <?php } ?></p><p> </ul></p><p> </nav> </p><p>
이부분을 PHP array로 만들어서 JSON으로 넘겨 줄려고 합니다.
</p><p>{</p><p> {</p><p> "me_id": "1",</p><p> "me_code": "10",</p><p> "me_name": "메뉴1",</p><p> },</p><p> {</p><p> "me_id": "2",</p><p> "me_code": "20",</p><p> "me_name": "메뉴2",</p><p> },</p><p> {</p><p> "me_id": "3",</p><p> "me_code": "30",</p><p> "me_name": "메뉴3",</p><p> },</p><p> {</p><p> "me_id": "4",</p><p> "me_code": "40",</p><p> "me_name": "게시판",</p><p> "submenu": [</p><p> {</p><p> "me_id": "5",</p><p> "me_code": "4010",</p><p> "me_name": "공지사항",</p><p> },</p><p> {</p><p> "me_id": "6",</p><p> "me_code": "4020",</p><p> "me_name": "홍보센터",</p><p> }</p><p> ]</p><p> }</p><p>}</p><p><span style="font-size: 11pt; line-height: 1.5;">
위와 같은 식으로 넘어가면 Javascript에서 핸들하기가 편할까요?
만약에 맞다고 하면 PHP 식을 어떻게 하면 될까요?
Javascript에서 다루기 더 편한 방법이 있다면, 그 방법에 대한 PHP는 어떻게 해야 되나요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
댓글을 작성하려면 로그인이 필요합니다.
10년 전
아래와 같이 출력되도록 일단 만들어 봤습니다. 앱쪽에서 핸들해 가면서 조금씩 수정해 가면 될것 같습니다.
</p><p><span style="line-height: normal; white-space: pre-wrap; font-size: 11pt;">[</span></p><pre style="line-height: normal; word-wrap: break-word; white-space: pre-wrap;"> {
"me_id": "13",
"me_code": "10",
"me_name": "소모임",
"me_link": "http:\/\/localhost\/gb51\/bbs\/board.php?bo_table=somo",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1",
"submenus": [
{
"me_id": "14",
"me_code": "1010",
"me_name": "해외사용자",
"me_link": "http:\/\/localhost\/gb51\/bbs\/board.php?bo_table=so_global",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1"
},
{
"me_id": "15",
"me_code": "1020",
"me_name": "앱개발",
"me_link": "http:\/\/localhost\/gb51\/bbs\/board.php?bo_table=so_app",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1"
}
]
},
{
"me_id": "16",
"me_code": "20",
"me_name": "메뉴2",
"me_link": "#",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1"
},
{
"me_id": "17",
"me_code": "30",
"me_name": "메뉴3",
"me_link": "#",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1"
},
{
"me_id": "18",
"me_code": "40",
"me_name": "게시판",
"me_link": "http:\/\/localhost\/gb51\/bbs\/board.php?bo_table=notice",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1",
"submenus": [
{
"me_id": "19",
"me_code": "4010",
"me_name": "공지사항",
"me_link": "http:\/\/localhost\/gb51\/bbs\/board.php?bo_table=notice",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1"
},
{
"me_id": "20",
"me_code": "4020",
"me_name": "홍보센터",
"me_link": "http:\/\/localhost\/gb51\/bbs\/board.php?bo_table=gallery",
"me_target": "self",
"me_order": "0",
"me_use": "1",
"me_mobile_use": "1"
}
]
} </pre><p><span style="line-height: normal; white-space: pre-wrap; font-size: 11pt;">]</span> </p><p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택