2011-11-03 62 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