변수에 따른 페이지 이동

변수에 따른 페이지 이동

QA

변수에 따른 페이지 이동

본문

990531248_1641347883.3882.png

 

의도한 것 : 

$is_page가 page01인 페이지에서 a태그 클릭 시 page01로 이동

$is_page가 page02인 페이지에서 a태그 클릭 시 page02로 이동

나머지는 페이지에서 a태그 클릭 시 page03으로 이동

 

모든 페이지에 해당 코드가 있는 php파일을 include한 상태 입니다.

근데 page01,page02에서만 작동하고 나머지 페이지에서는 page03으로 이동하지 않는데

작성한 코드 중 잘못된게 있을까요....?ㅠㅠ

이 질문에 댓글 쓰기 :

답변 4

코드에 문제는 없어보입니다

is_page 가 01,02 가 아닌 페이지에서 else 아래 구문이 실행되는지 확인해보시기 바랍니다

else아래 구문이 실행이 안되는데,

else구문 의도한 것 :
$is_page == 'page01';일 경우와 $is_page == 'page02';인 경우를 제외한 변수를 적지않은
나머지 페이지는 page03으로 이동

이런 의도로 적은것인데 페이지 이동이 안되는 원인이 뭐가 있을 까요...?
else if문으로 바꾸고 $is_page == 'page03';으로 변수 지정해도 다른페이지에서는 이동이 안되고
a태그에 위와같이 지정해놨음에도 그냥 현재 페이지로만 이동하는데ㅠㅠ

우선 위 코드가 왜 안되느냐하면

url을 불러오는 부분에서 echo 로 출력을 하지않았기 때문입니다.

 


<?php
switch ($is_page){
    case 'page01':
        $url= 'G5_URL . "/ko/subpage/page01.php";';
        break;
    case 'page02':
        $url= 'G5_URL . "/ko/subpage/page02.php";';
        break;
    default:
        $url= 'G5_URL . "/ko/subpage/page03.php";';
}
?>
 
<a href="<?php echo $url?>">링크</a>

 

이런식의 코드가 더 나아보입니다.

어차피 $is_page가 page01, page02, 기타 등등이면 아래처럼 하면 되겠네요.

질문에 맞게 '이미지' 첨부합니다. 두 가지 형태 중 마음에 드는 코드 사용하면 되겠습니다.

 

988537230_1641351180.4586.png

 

* 혹시 PHP 버전이 5.4 미만이라면 처음 코드는 아래처럼 바꿔야 합니다.

988537230_1641351253.8381.png

 

* $is_page 변수가 없을 수 있다면 조건 추가

988537230_1641351359.0888.png

지금 올려주신 코드에서 문제가 될만 한 부분은

 

if($is_page == "page01"){

}elseif($is_page == "page02"){

}else{

}

 

이렇게 하셔야 될거 같습니다

else if  와

elseif 는 다르게 인식합니다

그렇지 않아요.

+ elseif/else if
- https://www.php.net/manual/en/control-structures.elseif.php

There may be several elseifs within the same if statement. The first elseif expression (if any) that evaluates to true would be executed. In PHP, you can also write 'else if' (in two words) and the behavior would be identical to the one of 'elseif' (in a single word). The syntactic meaning is slightly different (if you're familiar with C, this is the same behavior) but the bottom line is that both would result in exactly the same behavior.

* 예제에 나오지만, 대체 구문 사용 시 붙여써야 하는 것만 주의.

답변을 작성하시기 전에 로그인 해주세요.
전체 2,345
QA 내용 검색

회원로그인

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