2014-02-21 4 views
2

서버 측 PHP 변수를 Javascript로 전달하는 가장 좋은 방법은 무엇입니까? 문제를 단순화하기 위해PHP에서 서버 측 변수를 Javascript로 전달

우리가 PHP ($phpVar)에서 변수가 있다고 가정하고 우리는

자바 스크립트 파일을 HTML에로드 된 자바 스크립트 변수 (jsVar)에 값을 할당 할 - 그들은 동적 생성되지 않습니다! 자바 스크립트 파일을로드하기 전에 PHP와

1. 인쇄 : DOM에서

<script language="javascript" type="text/javascript"> 
     var jsVar= <?php echo $phpVar?>; 
    </script> 

2. 저장소 (숨겨진 요소)

생각에 대한 몇 가지 음식

. PHP로 :

<span data-name="phpVar" data-value="<?php echo $phpVar?>"></span> 

b. 자바 스크립트 파일 (사용 가능한 jQuery를 가정)에 읽기 : 페이지가 Obviosly

하지 최적의 솔루션을로드 한 후

var jsVar= $('span[data-name="phpVar"]').attr('data-value'); 

3. AJAX로 문의하십시오. ... 결론적으로

를 모든 시나리오에 적합하고 추가 요청을 필요로하지 않습니다 :

  • 그들은 모두 나에게 추한 것 ... 더 나은 방법이 있나요?
  • 이 종속성을 처리 할 수있는 프레임 워크가 있습니까? 서버 재구성을 최소화하십시오.
+0

내가 사용하는 옵션 1 –

+0

해결 방법 1. 왜 당신이 그들을 좋아하지 않아? – dirluca

+0

AJAX가 가장 좋은 방법입니다. 어떤 시나리오에서 AJAX가 좋지 않다고 생각하십니까? –

답변

1

상황에 따라 다르지만 일반적으로 첫 번째 경우를 주로 사용합니다.

<script language="javascript" type="text/javascript"> 
    var jsVar = '<?php echo $phpVar?>'; 
</script> 
2

가장 좋은 방법은 클라이언트 측에서 AJAX를 통해 요청 "내부 API"를 제공 할 것입니다 : 당신이 문자열을 전달하지만 따옴표에 대해 잊지 마세요. 이렇게하면 양측을 분리하여 둘 수 있습니다.

이렇게하는 것이 가장 빠른 방법은 공유 파일에 공유하려는 값을 인쇄하는 것입니다 (질문에 쓴 것처럼). 마지막 참고로

: 두 번째 방법을 계속할 경우 내가 자바 스크립트로 PHP에서 배열과 객체를 전달하는 당신에게 정말 도움이되는 방법으로

json_encode() 

을 제안합니다.

당신이 당신의 PHP 배열이 그래서 경우 : 값이 사용자 상호 작용, 솔루션 3 그렇지 않으면에서 dinamically 의존하지 않을 경우

$array = array("a" => 1, "b" => 2); 

<script language="javascript" type="text/javascript"> 
    var js_array= <?php echo json_encode($array) ; ?>; 
</script> 
+0

@DanFromGermany가 제공하는 것입니다. –

+0

@ Victor Who? 방금 내가 쓴 걸 썼다. 다른 사람이 이미 제안했는지 나는 모른다. 그의 대답을 우리에게 제공 할 수 있습니까? 감사. –

+0

[코멘트] (http://stackoverflow.com/questions/21930987/pass-server-side-variables-to-javascript-in-php#comment33219972_21930987)을 읽을 수 있습니다 :) –

관련 문제