在html页面中获取变量值并在外部js中使用它

时间:2010-06-30 16:52:22

标签: javascript jquery

你好有一个显示HTML页面的php模板。在其中有一个js文件的调用,初始化一些jquery插件。

在模板上我有这段代码:

(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);

然后在init.js页面上我打电话给adlow,adhigh和adtickno。 我得到变量未定义的错误。

php正在返回正确的值。但是外部init文件没有得到它们。我是否需要做一些特殊的事情才能使init文件能够使用这些变量? 我所做的就是插上它们......

谢谢,我对这些页面之间的互动感到有些模糊。

2 个答案:

答案 0 :(得分: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 ?>;

   });

答案 1 :(得分: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之前已经加载了。