2013-06-04 5 views
-1

내 모든 인라인 자바 스크립트를 외부 파일로 이동하는 변경 요청이 있습니다. 나는 새로운 파일에 간단한 복사 - 붙여 넣기를 시도했지만 운이 없다. 다음 줄에서 오류가 발생합니다. var grp_list = <?php echo json_encode($arr_grp); ?>;url: "<?php echo $_SERVER['PHP_SELF']; ?>" 나는 그런 경우가 20 회 이상 있습니다. 어떻게 외부 자바 스크립트에서 이러한 PHP 변수를 대체합니까 ?? 많은 포럼을 확인했지만 해결책을 찾지 못했습니다.외부 js 파일의 PHP 배열

도움을 주셔서 감사합니다.

답변

1

간단히 말해, PHP에서 파일을 생성하지 않고 PHP 변수를 외부 JS 파일로 직접 전달할 수 없으며 파일을 JavaScript로 처리하기 위해 사용자 정의 헤더를 전송합니다 (편집 : post : Marcovecchio if 이것은 가능한 솔루션과 같음) 빠른 해결책은 변수를 인라인으로 전달하여 전역 변수로 설정 한 다음 외부 파일에서 변수를 사용하는 것입니다. 이렇게하면 대부분의 자바 스크립트가 외부 파일에있을 수 있지만 PHP에서 JS로 변수를 전달할 수도 있습니다.

이 방법이 최선의 방법은 아니지만 일하기가 가장 쉽습니다. 나는 이러한 유형의 변경을 희망 ... 내가 지금 일하고있어 다행이야 .. 어쨌든 ..

<script type="text/javascript"> 
    var grp_list = <?php echo json_encode($arr_grp); ?>; 
    var url = "<?php echo $_SERVER['PHP_SELF']; ?>"; 
</script> 
<script type="text/javascript" src="external.js"></script> 
+0

이 내가 전에 그것을 시도하지만 다시 작동하지 않았다, 일 아 : 여기

은 예입니다 성능을 저해하지 않습니까? HTML 헤더와 본문에서이''을 제공해야합니까? – user1165952

+0

그냥 외부 파일이 변수 뒤에 올 것인지 확인해야합니다. ''또는 ''에있을 수 있으며, 모두 – naththedeveloper

+0

에있을 필요는 없습니다 .. 감사합니다 .. – user1165952

1

글쎄, 당신은 PHP 스크립트에 "뒤죽박죽"으로 JavaScript가 있습니다. 가장 쉬운 해결책은 변수를 변환하는 것을 잊어 버리는 것입니다. 대신, PHP 부분을 포함한 모든 JS 코드를 사용자 정의 헤더를 사용하여 JS 파일 인 PHP 파일에 넣으십시오. 따라서 "자바 스크립트"파일은 다음과 같습니다 :

<?php 
    // Send a custom header, so that it will be interpreted as a js file.  
    header("Content-Type: application/javascript"); 
?> 

JavaScript and PHP mixed code will go in here, with no modifications 

"javascript.php"와 같은 파일로 저장하십시오. 그런 다음 기본 HTML 또는 PHP 파일에 다음과 같이 입력하십시오.

<script src="javascript.php"></script> 

그게 전부입니다. javascript.php 파일은 서버에서 PHP 파일로 해석되고 JS로 브라우저에서 검색됩니다. javascript 파일에서 PHP를 처리하는 것과 관련해서 만 attetion을 지불하면됩니다. 주 스크립트에서 사용한 컨텍스트에 따라 다를 수 있으므로 추가 조정이 필요할 수 있습니다.