JS function 매개변수를 활용하여 확장변수 리턴시키는 작업을 하려고하는데..
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.3 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
function EX(n) {
return '{$oDocument->getExtraValue(' + n + ')}';
}
위 내용처럼 선언해서 필요할때 좀 간략히 게시물의 확장변수값을 불러오기 쉽게 구문을 간략화 하고싶습니다..
적용 후 EX(1) 진행하여 확장변수 1번값에 텍스트를 불러와야하는데 공백만 불러옵니다..
조언 부탁드립니다..
댓글 7
템플릿 문법은 서버에서, 자바스크립트는 사용자 브라우저에서 실행됩니다.
실행되는 장소도 순서도 다르므로 아무리 {$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 값을 사용하는 식으로 구현하셔야 합니다.
음.. 조언해주신 방법은 지금 사용하고있습니다.
var eid_1 = '{$oDocument->getExtraValue(0)}';
저 0번에 매개변수를 통해 불러와서 사용할 순 없다는거죠?
예를들어 확장변수가 1,2,3,4,5 안에 A,B,C,D,E가 있다는 가정하에
EX(1) 출력 시 A
EX(3) 출력 시 C
이런식으로요..
var led = "$oDocument->getExtraValue("+ n +")";
led = `{${led}}`;
return led;
}
말씀해주신 조언으로 좀 아이디어로 위 내용으로 {} 괄호를 나중에 출력하는걸로 해봤는데
아무 의미가 없네요 :( 그냥 구문 그대로 출력하는게 다네요../
및 {@} 은 일반적으로
<?php
또는
<? ?>
형식의 PHP스크립트 문구라는 시작점과 끝점이고, 해당 html은 무조건 PHP으로 실행한다는 가정을 가져야합니다.
PHP와 javascript와는 완벽하게 다른 분리된 공간이기 때문에 자바스크립트 문법을 {}을 사용해서 스크립트 문법으로 가져올 수 없는것과 동일하게, {{}} 와 같이 이중적으로 사용하는 경우도 거의 불가능하다고 봐야합니다.
말씀하신 부분 고칠려면 기왕이면 따로 모듈을 만들어서 해당 함수를 호출할 수 있는 시스템을 마련하면 더 좋겠습니다.
그냥 좀 무식하지만 확장변수값을 100번까지 배열함수에 담아내서 js로 처리중입니다..
100개까지는 다 갈일없지만 만일상황을 대비해서요..