2011-03-23 65 views
2

您好我已經發布了兩個值爲一個PHP頁面使用一個窗體,然後在PHP頁面上,我顯示一個googlemap並希望使用我發佈的兩個值作爲緯度和姿勢來繪製在地圖上。我認爲iv做了一切正確的事,但似乎並沒有拿起價值觀。乾杯!試圖把張貼的PHP變量放入一個JavaScript變量,所以可以在googlemap上繪圖

<script type="text/javascript"> 

function initialize() { 


var lat= "<?php echo $_POST['coordinates']; ?>"; 
var long= "<?php echo $_POST['coordinatestwo']; ?>"; 



var latlng = new google.maps.LatLng(lat,long); 
var myOptions = { 
    zoom: 8, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
var map = new google.maps.Map(document.getElementById("map_canvas"), 
    myOptions); 

    var marker = new google.maps.Marker({ 
       position: latlng, 
       map: map, 
       title: "Your current location!" 
     }); 

     } 


    </script> 

    </head> 
    <body onLoad="initialize();"> 

回答

1

long是JavaScript中的保留字。嘗試使用lng(no'o')作爲您的變量名稱。

var lng= "<?php echo $_POST['coordinatestwo']; ?>"; 

如果您view source在您的瀏覽器,您是否看到php值?如果沒有,那麼你的表單有問題。我們需要看到更多的代碼。

但很可能是long是我上面提到的保留字問題。

0

請勿使用long作爲變量名稱(它是reserved word)。此外,你不需要圍繞數字值引號。試試這個:

var lat = <?php echo floatval($_POST['coordinates']); ?>; 
var lng = <?php echo floatval($_POST['coordinatestwo']); ?>; 

編輯:提示 - 如果使用帶顏色高亮和語法檢查JavaScript的一個(好)編輯器,這是會被高亮(礦山報告的錯誤:「嚴格的警告: long是儲戶標識符「)。

+0

乾杯我試圖做出這些改變,但仍似乎沒有拿起它們。看看來源和正確的兩個值都等於0.這裏是我使用的形式:

2011-03-23 22:47:58

+0

@paul elliot,那麼可能你的$ _POST變量不包含你所期望的。嘗試使用'print_r($ _ POST);'看看那裏真的有什麼! – Czechnology 2011-03-24 00:08:35

0

我有一個工作的jsfiddle這裏:

http://jsfiddle.net/rcravens/RFHKd/

主要是你的代碼。我加入下列:

  1. A '的div' 與map_canvas提供
  2. 樣式此DIV給它的寬度和高度的ID。
  3. 包含加載谷歌地圖的腳本。

希望這會有所幫助。

鮑勃