2010-11-26 6 views

답변

70

당신은, 당신이

코뿔소가 맞다 또한 AJAX와 함께로드 할 수

<script type="text/javascript"> 
    var php_var = "<?php echo $php_var; ?>"; 
</script> 

같은 것을해야 할 것이다 없습니다, 스 니펫은 간결하게하기 위해 유형의 부족 .

또한 $php_var에 따옴표가 있으면 스크립트가 손상 될 수 있습니다. addslashes, htmlentities 또는 사용자 정의 함수를 사용해야합니다.

+1

코뿔소가 올바른지,로 json_encode 변수를 이스케이프합니다. – Jonah

+2

W3C는 '문서의 각 SCRIPT 요소 인스턴스에 type 속성을 지정해야합니다.'라고 말합니다. – stillstanding

+0

바로 간결함을 위해 생략 한 것 같습니다. – Jonah

35

metrobalderas는 부분적으로 적합합니다. 부분적으로는 PHP 변수의 값에 JavaScript의 메타 문자 인 일부 특수 문자가 포함될 수 있기 때문입니다. 나는이 얼마나 필요 확실하지 않다, 그것은 getElementById에 대한 호출을 추가하지만 당신은 당신의 코드에서 인라인 자바 스크립트를 얻기에 정말 치열 인 경우

<script type="text/javascript"> 
var something=<?php echo json_encode($a); ?>; 
</script> 
+5

+1. 테스트되었고, json_encode _does_는 문자열을 올바르게 인용하고 이스케이프 처리합니다. – Jonah

0

: 이러한 문제를 방지하려면, 아래의 코드를 사용 , 당신은 즉,있는 HTML 속성으로 전달할 수 있습니다

<span class="metadata" id="metadata-size-of-widget" title="<?php echo json_encode($size_of_widget) ?>"></span> 

그리고 당신의 자바 스크립트 :

var size_of_widget = document.getElementById("metadata-size-of-widget").title;