채택완료

foreach 질문입니다..

2018-02-09 (금) 16:10:04 1,685
Copy
$lets_array = array("0601"=>"헬로우","0603"=>"모바일","0401"=>"트러스트","0602"=>"악세사리","0402"=>"패치");
    $lets_where = "/bbs/board.php"; 

<div class="lets__common__btns">
        <ul class="lets__common__ul">
        <?php
           foreach($lets_array as $href => $lets_value) {
               $lets_active = "";
               if ($active_title == strip_tags($lets_value) ){
                       $lets_active = "content__active";
               }
               if ($href == "0401" || $href == "0402" ){
               $lets_where = "/bbs/write.php"; 
               }
         ?>
            <li class="lets__common__li <?php echo $lets_active;?>">
                <a href="<?php echo $lets_where;?><?php echo $parameter;?>=<?php echo $href?>" class="lets__common__click bold"><?php echo $lets_value?></a>
            </li>
        <?php } ?>
        </ul>
    </div>

위와 같은 코드가 있습니다.

배열을 이용해 메뉴를 만들고 있는데요..

기본은 board.php 즉 리스트 페이지인데

0401, 0402 이 두놈만 write.php로 가야합니다..

그래서

Copy
foreach($lets_array as $href => $lets_value) {
               $lets_active = "";
               if ($active_title == strip_tags($lets_value) ){
                       $lets_active = "content__active";
               }
               if ($href == "0401" || $href == "0402" ){
               $lets_where = "/bbs/write.php"; 
               }

이렇게 조건문을 걸었더니..........

0401 부터는 모두 write.php로 나오네요.. 제말이 이해가 되시나요????????

<a href="board.php?bo_table=0601">메뉴1</a>
<a href="board.php?bo_table=0602">메뉴1</a>
<a href="write.php?bo_table=0401">메뉴1</a>
<a href="board.php?bo_table=0603">메뉴1</a>
<a href="write.php?bo_table=0402">메뉴1</a>

이렇게 나오길 바랬는데

<a href="board.php?bo_table=0601">메뉴1</a>
<a href="board.php?bo_table=0602">메뉴1</a>
<a href="write.php?bo_table=0401">메뉴1</a>
<a href="write.php?bo_table=0603">메뉴1</a>
<a href="write.php?bo_table=0402">메뉴1</a>

이렇게 나옵니다...

어디를 손봐야할까요,,

제가 놓친게 무엇일까요..

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

$lets_where 변수에 계속 저장되어 돌아가기 때문입니다

$lets_where = "/bbs/write.php"; 가 한번 실행됨으로인해

$lets_where = "/bbs/write.php"; 가 다음 구문에서도 영향을 미쳐서

0603이라도 $lets_where의 변수값이 write.php로 선언이 되어버렸기때문에 입니다

foreach문에 초기화를 한번 넣어주세요 

$lets_where = "/bbs/board.php"; 를 반복구문 시작할때 선언하고 하면 되겠죠?

답변에 대한 댓글 1개

감사합니다.

바로위에 초기화 해놓고는 ㅎㅎ

다음줄에서 잊었네요 감사합니다.

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