테스트 사이트 - 개발 중인 베타 버전입니다

그누보드의 메뉴를 PHP Array로 만드는 방법 채택완료

jakekwak 10년 전 조회 4,119

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년 전

제가 몰랐던 것이 하나 더 보입니다. 흐흐.. 신난다 ^^

감사합니다!! 

로그인 후 평가할 수 있습니다

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

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>

로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인