Extra Form
PHP PHP 5.6
CMS Rhymix

레이아웃 조건문에 대해서 질문드립니다.

먼저 자바스크립트로 모니터의 해상도 값을 가져왔습니다.
제 모니터는 가로가 1920픽셀이어서 값이 1920 입니다.

 

레이아웃에서
{@   } 코드안에

 

$모니터크기변수 = "<script>document.write(변수값);</script>";를 사용해서 변수 값에 1920을 담았습니다.

 

레이아웃에서

{$모니터크기변수} 출력을 해 보면 1920이라는 값이 출력이 됩니다.

 

마지막 여기서 잘 안되어서 그런데요.

제가 조건문으로
<!--@if($모니터크기변수 > 1919)-->
위젯1출력
<!--@else-->
위젯2출력
<!--@end-->

이렇게 하면 정상적으로 실행이 안됩니다.


자바스크립트 값을 레이아웃 조건문에 가져올 수가 없는 것 같은데
레이아웃에서 {$변수} 값까지는 출력이 됩니다.

 

이 출력된 값을 if 조건문에 가져올 수 있는 방법이 있을까요?

글재주와 개발지식이 충분하지 않아서 질문이 조금 명확하지 않았다면 이해해 주십시오.

 

정리:
자바스크립트 값을 XE 레이아웃 {@   } 구문안에 가져와서
{$변수}로 출력 (가능)
이 $변수를 조건문에 사용하려니 안됨.
이렇습니다.

 

코로나19로 회사 휴원하고 계속 코딩공부하고 있습니다.

코딩으로 코로나19 극복하도록 힘을 주세요~

  • profile
    XE 템플릿 문법은 PHP단(그러니까 서버 안)에서 작동됩니다.
    JS는 서버가 아닌 브라우저에서 실행되는 기능이니, 당연히 PHP에서는 JS 결과값을 받아올 수 없지요.

    해상도별로 다른 내용을 출력하고 싶다면,
    일단 해상도 구분없이 전부 출력시킨 뒤, JS나 CSS를 통해 해상도에 맞는 값만 보이게 하고 나머지는 숨김(미출력이 아닌 숨김 - display: none 과 같은 방식으로) 처리 하는 방법밖에 없겠네요.
  • profile
    <div class="r" id="r1920">해상도 1920</div>
    <div class="r" id="r1280">해상도 1280</div>

    <style>
    .r { display: none; }
    </style>

    <script>
    var resolution = 모니터해상도가져오는함수();
    if(resolution == 1920)
    $('#r1920').css('display', 'block');
    else if(resolution == 1280)
    $('#r1280').css('display', 'block');
    </script>

    같은 방식으로요.
  • profile ?
    예, 제가 하기에는 아래 방법이 좋을 것 같습니다. stackoverflow 같은 곳에서는 데이터 post해서 ajax로 처리해보라거나 하는 내용들이 있어서 이리저리 해 봤는데 머리가 당최^^
    빨리 작업할 수 있게 도와주셔서 고맙습니다.