2011-10-17 30 views
2

我目前正在開發一個項目以創建位置感知網站。本質上,用戶來到頁面,並且使用HTML5方法找到他們的位置,然後使用jQuery,該位置被髮布到頁面,該頁面將位置/地址保存到codeigniter會話中,但是如果他們想要更新他們的位置,或者更改到不同的位置(IE他們希望使用他們的工作地址作爲位置而不是他們現在的地址),一個jQuery colorbox顯示並讓他們鍵入一個自定義地址。地理位置和jQuery - 無法使用ajax發佈結果

一切完美的作品來獲取初始位置,但是當我嘗試並獲得更新的位置保存,我收到錯誤「遺漏的類型錯誤:對象[對象DOMWindow]有沒有方法‘緯度’」,然後谷歌瀏覽器引用不是jQuery中的錯誤,而是Google Maps API的文件中的錯誤。有什麼建議麼?

jQuery('.inputsubmit').click(function() { 

//Takes values from user submitted fields and parses them into an address string 
var street = jQuery('.inputaddress').val(); 
var city = jQuery('.inputcity').val(); 
var state = jQuery('.inputstate').val(); 


var address = street +" "+ city +", " +state; 

    geocoder = new google.maps.Geocoder(); 
    var geocoderresult= geocoder.geocode({'address': address}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      var newlocation = results[0].geometry.location; 

       //Posts coordinates and address string to a CodeIgniter function to update users session information 
       jQuery.post("somepage", {location: newlocation, address: address},function(data) { 
      alert("Data Loaded: " + data); 
      }); 

     } else { 
      alert("Geocoder failed due to: " + status); 
     } 
    }); 

}); 

我已經嘗試了所有我能想到的工作。所有的代碼都運行到了這一點,並且我已經註釋了帖子行,並且一切正常。這是我們主要網站的功能之一,可以根據位置提供即時和快速的結果。

謝謝!

+0

發佈的javascript代碼的哪一行導致錯誤? Chrome的檢查員應該告訴你這個 –

+0

地圖api文件main.js的第12行 – etombaugh

+0

@matt b - 它發生在Google Maps API中。 「谷歌瀏覽器引用不是jQuery中的錯誤,而是谷歌地圖API文件中的錯誤」。這通常意味着您將一個參數傳遞給API所不期望的API。通過確認您傳遞給API的參數值進行調試。 –

回答

0

我認爲您需要在somepage上加載您的Google API代碼以及原始頁面。由於$.POST找不到lat對象,因此看起來somepage上不包含geolocation.js文件。