2013-02-18 4 views
-1

JS 함수에는 PHP에 의해 생성 된 변수가 필요합니다. .js 파일은 <?php ?> 문자열을 해석 할 수 없으므로 .html 코드에서 전달해야합니다.PHP에서 javascript로 값 전달

예,하지만 HTML에서 JS 코드를 실행하는 것은 나쁜 습관으로 간주됩니다 (정확히 style 요소와 동일). 그럼 어떻게해야 하죠?

+2

HTML에서 JS 코드 실행 – bozdoz

+0

js에서 PHP 코드를 읽도록 Apache를 구성 할 수도 있다고 생각합니다. 파일을 대체 할 수 있습니다. – bozdoz

+0

글로벌 네임 스페이스 및 에치 만들기 o 필요한 데이터가있는'json_encode'd 객체. JSON 인코딩 된 문자열은 유효한 JS 객체 리터럴이므로 파싱 할 필요가 없습니다. –

답변

1

이 같은 뭔가를 echo을 사용할 수 몇 가지 옵션이 있습니다

<? echo('<script type="text/javascript">var hello="world"</script>'); 
1

. 먼저 첫 번째 예를 만들 수 있습니다.

<?php 

$myVariable = array('key' => 'value', 'anotherKey' => 10); 

?> 

// PHP variable output in javascript's object syntax 
var phpData = <?php echo json_encode($myVariable); ?>; 

// value 
console.log(phpData.key); 
// 10 
console.log(phpData.anotherKey); 

또 다른 옵션은 PHP 스크립트에 Ajax 요청을 사용하여 데이터를 검색하는 것입니다. 귀하의 질문에 따라 페이지가로드 될 때 데이터가 있으므로이 옵션은 유용하지 않을 가능성이 높습니다.

1

의 .js 파일에는 파일에게 .php 확장을 제공 <?php ?> 문자열

을 해석 할 수 없습니다. (.

을 당신이 header() 호출 PHP의 기본 콘텐츠 형식의 출력을 우선 확인하지만, HTML에서 실행되는 JS 코드 (단지) 스타일 요소와 같은 나쁜 관행을 고려했다.입니다

을 JS를 인라인하는 것은 좋지 않기 때문에 파일을 동적으로 생성하는 경우 어쨌든 캐시 할 수 없을 수도 있습니다.

관련 문제