2011-03-18 3 views
0

자바 스크립트 배열을 사용하여 비디오 슬라이드 쇼를 만들려고합니다. 배열은 데이터베이스 루프에서 채워 져야합니다. 비디오 데이터베이스는 CMS를 통해 생성됩니다.PHP 데이터베이스 루프에서 Javascript 배열로 문자열을 반환

현재 내 배열 인 FeaturedVideos에 "푸시 (push)"를 사용하고 있지만 작동하지 않습니다. 어떻게하면 반환 된 문자열을 배열에 넣을 수 있습니까?

<% control getFeaturedMedia %> 
<script type="text/javascript"> 
FeaturedVideos.push('<div class="panel"><h3>$Title</h3><div class="videoBox"><% if Type = Vimeo %><iframe src="http://player.vimeo.com/video/$VideoID?title=0&amp;byline=0&amp;portrait=0" width="275" height="184" frameborder="0"></iframe><% else_if Type = YouTube %><iframe class="youtube-player" type="text/html" width="275" height="184" src="http://www.youtube.com/embed/$VideoID" frameborder="0"></iframe><% else %>$Image.SetSize(275,184)<% end_if %></div></div>'); 
</script> 
<% end_control %> 
+3

JS와 PHP 외에도 다른 기술을 사용하고 있다고 생각합니다. 필요한 태그와 문장을 질문에 추가하십시오. – vbence

+0

PHP를위한'<% %>'은 (는) 모범 사례가 아닙니다. '... JS와 상호 작용하려는 변수를 에코합니다. – kjy112

답변

1

자바 스크립트에 PHP 값을 직접 삽입하고 있습니다. 특히 자바 스크립트가 해석 할 PHP 생성 텍스트에 무엇이 있다면, 특히 작은 따옴표 '이 있으면 자바 스크립트가 깨질 수 있습니다.

$js_value = "<div class=........ blah blah blah ...."; 

와 자바 스크립트 JSON과 같은 데이터에 삽입을 : :이 JSON 인코딩이 있음을 회전 처리됩니다

FeaturedVideos.push(<?php echo json_encode($js_value); ?>); 

같은 직접 삽입 안전하게하려면 전체 별도로 문자열을 생성한다 문자열을 유효한 JS 표현으로 변환합니다.

지금 당장 PHP/Javascript와 동일한 SQL 주입 기능을 사용할 수 있습니다.

관련 문제