2011-11-03 68 views
1

我想动态加载KML文件到一个地图,具体取决于哪个好友新闻用户登录。当我在JavaScript中硬编码userID时,一切正常文件,但我需要它来动态加载当前的用户用户ID。

这里是JavaScript文件:

function initialize(){ 
    //MAP 
     //manually set user ID to zero 
     //var current_user =0; 
     var current_user; 
     //var current_user = "<?php get_currentuserinfo(); echo $current_user->ID?>" 
     var latlng = new google.maps.LatLng(90.64138205695923,-45.38903528363647); 
     var options = { 
     zoom: 16, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     map = new google.maps.Map(document.getElementById("map_canvas"), options); 

     var kmlLayer = new google.maps.KmlLayer('http://www.mysite.com/timeline_'+current_user+'.kml'); 
     kmlLayer.setMap(map); 

这是我在PHP文件,内环路:

$("#address1").click(function() { 
       initialize(); 
       var currentUser = <?php get_currentuserinfo(); echo $current_user->ID?>; 
        $current_user = currentUser; 

       }); 

就像我提到的,它的工作原理,如果我硬代码的用户ID,但我不确定如何将用户ID从PHP传递到JavaScript文件。

+1

为什么不修改您的JS功能所以你的PHP文件生成JavaScript,调用'initialize(<?= json_encode($ current_user-> ID)?>);'并通过参数传递用户? – MrTrick

回答

1

正如我先前的评论所说,我认为这将解决您的问题:

在js文件:

... 
function initialize(current_user) { 
    ... 
} 
... 

在PHP:

... 
<script type="text/javascript"> 
    $("#address1").click(function() { 
     initialize(<?=json_encode($current_user->ID)?>); 
    }); 
</script> 
... 
+0

工作正常!谢谢! – Livi17