2010-06-30 2 views
1

안녕하세요, html 페이지를 표시하는 PHP 템플릿이 있습니다. 거기에 jquery 플러그인을 초기화하는 js 파일에 대한 호출이 있습니다. 템플릿에 html 페이지에서 변수 값 가져 오기 및 외부 js에서 사용하기

나는이 코드를 가지고 :
(function($) { 

$(document).ready(function(){ 
    var adlow = <?php echo $jSeblod->disparities_tick_lower->value ?>; 
    var adhigh = <?php echo $jSeblod->disparities_tick_upper->value ?>; 
    var adtickno = <?php echo $jSeblod->disparities_tick_divisions->value ?>; 

    }); 
})(jQuery); 

다음 내가 adlow, adhigh 및 adtickno 호출 init.js로 페이지. 변수가 정의되지 않은 오류가 발생합니다.

PHP가 올바른 값을 반환하고 있습니다. 그러나 외부 init 파일은 그것들을 얻지 못한다. 이 변수를 사용할 수 있도록 init 파일을 얻으려면 특별한 것을해야합니까? 내가 그랬던 것만 연결하면 ...

감사합니다.이 페이지 들간의 상호 작용에 약간의 흐림이 있습니다.

답변

2

다른 페이지에서이를 사용하려면 전역이어야합니다. var을 제거해보세요. 또는 더 나은 연습 인 그들을 네임 스페이스 :

$(document).ready(function(){ 
    MYAPP = {}; 
    MYAPP.adlow = <?php echo $jSeblod->disparities_tick_lower->value ?>; 
    MYAPP.adhigh = <?php echo $jSeblod->disparities_tick_upper->value ?>; 
    MYAPP.adtickno = <?php echo $jSeblod->disparities_tick_divisions->value ?>; 

    }); 
+0

안녕하세요, 이것은 제가 의도 한 것입니다. 나는 전체적인 선언문을 이해하지 못했다. 그러나 balusc도 정확했다. 어느 대답도 다른 것 없이는 작동하지 않습니다. init.js가로드되기 전에 전역 변수를 선언해야한다. – liz

+0

나는 여기에서 분명하다. MYAPP가 새로운 네임 스페이스입니까? 그 네임 스페이스로 선언 한 변수는 전역 적으로 사용할 수 있습니까? – liz

+0

'MYAPP'는 네임 스페이스로 사용되는 글로벌 자바 스크립트 객체입니다. 'MYAPP'는 글로벌 변수이므로, 추가 된 모든 변수는 전역 적으로 액세스 할 수 있습니다. –

2

당신은init.js로드하기 전에 전역 에서 그들을 인쇄 할 필요가있다.

<script> 
    var adlow = <?php echo $jSeblod->disparities_tick_lower->value ?>; 
    var adhigh = <?php echo $jSeblod->disparities_tick_upper->value ?>; 
    var adtickno = <?php echo $jSeblod->disparities_tick_divisions->value ?>; 
</script> 
<script src="init.js"></script> 

$(document).ready() 동안 인쇄하는 것은 의미가 없습니다. 이미 init.js이로드되어 있습니다.

+0

안녕하세요, 당신의 대답이 필요한 동안 (위의 코멘트를 참조하십시오) ... 위의 정말 변수를 전달하는 내 질문의 핵심에있어. 만약 내가 두 정확한 나는 당신의 대답을 확인하는 것입니다 확인할 수 있습니다. – liz

관련 문제