자바스크립트 질문

Extra Form
PHP PHP 7.2
CMS Rhymix 2.x

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] 이렇게 해버리면 값은 잘 나와요

 

이해가 안됩니다 ㅠㅠ 전문가님들 도와주세요 

  • profile

    문제의 소스가 언제 실행되는지 생각해 보면 답이 나옵니다.

     

    {$widget_info->header_name;} 이건 서버단에서 해석되는 템플릿 문법입니다.

    자바스크립트는 서버단에서 템플릿 해석을 마친 결과를 전송한 후, 브라우저에서 실행됩니다.

    즉, 자바스크립트에서 for 루프를 돌릴 때쯤이면 서버는 이미 처리를 마친 지 오래이니

    더이상 템플릿 문법을 해석할 수 없는 것입니다.

     

    PHP는 항상 자바스크립트보다 먼저 실행됩니다.

    for 루프를 돌리는 것까지 모두 템플릿 문법으로 작성하면 간단하게 해결될 것 같습니다.