function EX(n) {

                                              return '{$oDocument->getExtraValue(' + n + ')}';

                                            }

 

위 내용처럼 선언해서 필요할때 좀 간략히 게시물의 확장변수값을 불러오기 쉽게 구문을 간략화 하고싶습니다..

적용 후 EX(1) 진행하여 확장변수 1번값에 텍스트를 불러와야하는데 공백만 불러옵니다..

 

조언 부탁드립니다..

  • profile

    템플릿 문법은 서버에서, 자바스크립트는 사용자 브라우저에서 실행됩니다.
    실행되는 장소도 순서도 다르므로 아무리 {$oDocument->getExtraValue(' + n + ')} 와 같이 작성해도 의미없습니다.

    위 작성하신 템플릿 문법은 대략 다음 코드가 됩니다.

    function EX(n) {
    return '<?php echo $oDocument->getExtraValue(' + n + ');?>';
    }

    즉 getExtraValue 함수에 ' + n + ' 문자열이 들어가므로 당연히 그 결과는

    function EX(n) {
    return '';
    }

    가 됩니다. 그냥 무조건 빈 값을 돌려주는 함수를 만드신거죠.

    제대로 동작하려면
    var eid_1 = '{$oDocument->getExtraValue(0)}';

     

    과 같이 작성하신뒤 eid_1 값을 사용하는 식으로 구현하셔야 합니다.

  • profile ?

    음.. 조언해주신 방법은 지금 사용하고있습니다.

    var eid_1 = '{$oDocument->getExtraValue(0)}';

     

    저 0번에 매개변수를 통해 불러와서 사용할 순 없다는거죠?

     

    예를들어 확장변수가 1,2,3,4,5 안에 A,B,C,D,E가 있다는 가정하에

     

    EX(1) 출력 시 A

    EX(3) 출력 시 C

     

    이런식으로요..

  • profile ?
    function EX(n) {
    var led = "$oDocument->getExtraValue("+ n +")";
    led = `{${led}}`;
    return led;
    }

    말씀해주신 조언으로 좀 아이디어로 위 내용으로 {} 괄호를 나중에 출력하는걸로 해봤는데
    아무 의미가 없네요 :( 그냥 구문 그대로 출력하는게 다네요../
  • ? profile
    네. 안됩니다. 굳이 인자를 받고 싶으시다면 애드온이나 모듈 등 만드신뒤 스크립트로 값을 가져오셔야 합니다.
  • profile ?
    애초에 안되는걸 시도하는중이었군요.. 빠르게 깨우치게해주시어 감사합니다 :)
  • ? profile
    {}
    및 {@} 은 일반적으로
    <?php
    또는

    <? ?>
    형식의 PHP스크립트 문구라는 시작점과 끝점이고, 해당 html은 무조건 PHP으로 실행한다는 가정을 가져야합니다.

    PHP와 javascript와는 완벽하게 다른 분리된 공간이기 때문에 자바스크립트 문법을 {}을 사용해서 스크립트 문법으로 가져올 수 없는것과 동일하게, {{}} 와 같이 이중적으로 사용하는 경우도 거의 불가능하다고 봐야합니다.

    말씀하신 부분 고칠려면 기왕이면 따로 모듈을 만들어서 해당 함수를 호출할 수 있는 시스템을 마련하면 더 좋겠습니다.
  • profile ?
    넵 윗분과 동시에 좋은 조언 감사합니다

    그냥 좀 무식하지만 확장변수값을 100번까지 배열함수에 담아내서 js로 처리중입니다..

    100개까지는 다 갈일없지만 만일상황을 대비해서요..