자바스크립트 질문
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.2 |
if(item_count > 0){
var group_count = {$widget_info->group_count};
for (var i = 0; i < group_count; i++) {
var docrand = document.getElementById("docrand");
docrand.innerHTML += "<div></br>item</br>";
docrand.innerHTML += "{$widget_info->header_name;}";
docrand.innerHTML += "{$widget_info->content_items["+i+"]->getTitle();}";
docrand.innerHTML += "</div>";
}
}
안에 php코드 넣어서 실행중입니다
docrand.innerHTML += "{$widget_info->header_name;}";
이거는 값이 잘나오는데
docrand.innerHTML += "{$widget_info->content_items["+i+"]->getTitle();}";
이거는 안나오더라구요,
["+i+"] 이거를 [0] 이렇게 해버리면 값은 잘 나와요
이해가 안됩니다 ㅠㅠ 전문가님들 도와주세요
댓글 1
문제의 소스가 언제 실행되는지 생각해 보면 답이 나옵니다.
{$widget_info->header_name;} 이건 서버단에서 해석되는 템플릿 문법입니다.
자바스크립트는 서버단에서 템플릿 해석을 마친 결과를 전송한 후, 브라우저에서 실행됩니다.
즉, 자바스크립트에서 for 루프를 돌릴 때쯤이면 서버는 이미 처리를 마친 지 오래이니
더이상 템플릿 문법을 해석할 수 없는 것입니다.
PHP는 항상 자바스크립트보다 먼저 실행됩니다.
for 루프를 돌리는 것까지 모두 템플릿 문법으로 작성하면 간단하게 해결될 것 같습니다.