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

변수에 따른 페이지 이동

sk1004 3년 전 조회 1,852

 

의도한 것 : 

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

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

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

 

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

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

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

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

답변 4개

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

 

if($is_page == "page01"){

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

}else{

}

 

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

else if  와

elseif 는 다르게 인식합니다

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

답변에 대한 댓글 2개

B
BiHon
3년 전
그렇지 않아요.

+ 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.

* 예제에 나오지만, 대체 구문 사용 시 붙여써야 하는 것만 주의.
그누위즈
3년 전
위에 보시면은
echo 로 출력을안해서 조건문이 제대로 안돌아가는것처럼 보이는거에요.
코드는 문제없네요.

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

B
3년 전

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

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

 

 

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

 

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

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

답변에 대한 댓글 1개

s
sk1004
3년 전
감사합니다!! 덕분에 배열사용해서 코드 작성하는법 배워갑니다!!:)

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

그누위즈

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

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

 

</p>

<p><?php</p>

<p>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";';

}</p>

<p>?></p>

<p> </p>

<p><a href="<?php echo $url?>">링크</a></p>

<p>

 

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

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

답변에 대한 댓글 1개

s
sk1004
3년 전
도움주셔서 감사합니다!! 덕분에 switch문 하나 또 배워가네요:)

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

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

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

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

답변에 대한 댓글 1개

s
sk1004
3년 전
else아래 구문이 실행이 안되는데,

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

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

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

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

로그인