2016-07-01 6 views
0

PHP if 문을 기반으로 iframe의 소스 속성을 변경하고 싶습니다.자바 스크립트를 사용하여 PHP if 문에서 iframe의 소스를 변경하는 방법

나는 다음과 같습니다

<?PHP 
    if {...} 
    else { 
      echo "<script>"; 
      echo "document.getElementById('video-embed').setAttribute('src', 'https://www.youtube.com/embed/dQw4w9WgXcQ');"; 
      echo "</script>"; 
    } 
?> 

<!DOCTYPE html> 
    <body> 
     <div class="wrapper"> 
      <iframe id="video-embed" src="...some other youtube video"></iframe> 
     </div> 
    </body> 
</html> 

내가 알고 내가 성공적으로 JS는 경고를 테스트 한대로 문이 적어도 가능 인 경우에서 유효한 자바 스크립트를 실행. 온라인에서 본 모든 것이 "document.getElem ..."행에 문제가있는 구문이 유효 함을 나타내는 것으로 보입니다. 어떤 도움을 주시면 감사하겠습니다.

+0

PHP는 JS 코드가 실행되기 훨씬 전에 서버에서 실행되므로 PHP를 통해 JS 코드를 페이지에 추가하는 것은 다소 불필요합니다. 그냥 PHP –

답변

1

수정하려는 요소를 만드는 HTML 앞에 Javascript가 있습니다. 따라서 getElementById()은 요소를 찾지 못합니다. ID를 찾을 수 있도록 JS를 HTML 끝에 추가하는 PHP 코드를 이동하십시오. 또는 윈도우의 load 처리기에 Javascript를 삽입하십시오.

<?PHP 
    if {...} 
    else { 
      echo "<script>"; 
      echo "window.addEventListener('load', function() {"; 
      echo "document.getElementById('video-embed').setAttribute('src', 'https://www.youtube.com/embed/dQw4w9WgXcQ');"; 
      echo "});"; 
      echo "</script>"; 
    } 
?> 
+0

에 직접 iframe src를 설정하면 내 문제가 해결되었습니다. "window.addEventListener ..."행이 누락되었습니다. – derks

관련 문제