2012-04-23 22 views
0

我想爲我的表單添加谷歌地圖,所以他們進入地址後,他們可以查看地圖,之後,地圖經緯度提交給數據庫。到目前爲止,我無法實現它。我在jsfiddle上試過了,它工作。但是,當我嘗試添加到頁面不工作。 http://jsfiddle.net/pborreli/pJgyu/谷歌地圖的一個表格

這是整頁。

<!DOCTYPE html> 
<htmllang-"en"> 
<head> 
<meta charset="utf-8"> 
<title>My First Guide</title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<meta name="description" content=""> 
<meta name="author" content=""> 

<!-- Le styles --> 
<link href="css/bootstrap.css" rel="stylesheet"> 
<link href="css/bootstrap-responsive.min.css" rel="stylesheet"> 
<link href="css/prettify.css" rel="stylesheet"> 
<!--<link href="css/docs.css" rel="stylesheet">--> 
<script src="js/bootstrap.min.js" type="text/javascript"></script> 
<style type="text/css"> 
    body { 
    padding-top: 60px; 
    padding-bottom: 40px; 
    } 
</style> 

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
$("#address").change(function() { 
     var geocoder = new google.maps.Geocoder(); 
     var add = $("#address").val(); 
     geocoder.geocode({ 'address': add}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
     var latitude = results[0].geometry.location.lat(); 
     var longitude = results[0].geometry.location.lng(); 
     var map; 
     function initialize() { 
      var myOptions = { 
       zoom: 8, 
       center: new google.maps.LatLng(latitude, longitude), 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      map = new google.maps.Map(document.getElementById('map'), 
       myOptions); 
      } 

      google.maps.event.addDomListener(window, 'load', initialize); 
    }; 
    });​ 
</script> 
<link href="css/bootstrap-responsive.css" rel="stylesheet"> 
<body> 
    <div class="navbar navbar-fixed-top"> 
    <div class="navbar-inner"> 
     <div class="container"> 
     <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </a> 
     <a class="brand" href="#">My First Guide</a> 
     <div class="nav-collapse"> 
      <ul class="nav"> 
      <li class="active"><a href="#">Home</a></li> 
      <li><a href="#about">Write a review</a></li> 
      <li><a href="#contact">Talk</a></li> 
      <li><a href="#contact">Events</a></li> 
      <li> 
       <form class="navbar-search pull-left"> 
        <!--You can put class="search-query" too.--> 
        <input type="text" class=".navbar-search" placeholder="Search"> 
       </form> 
      </li> 
      </ul> 
     </div><!--/.nav-collapse --> 
     </div><!-- div container --> 
    </div><!-- div navbar-inner --> 
    </div><!-- navbar navbar-fixed-top --> 


<div class="container"> 
    <form class="form-horizontal"> 
     <fieldset> 
      <legend>Submit Business Place</legend> 
      <div class="control-group"> 
       <label class="control-label" for="input01">Business Name</label> 
       <div class="controls"> 
        <input type="text" class="input-xlarge" id="input01"> 
        <p class="help-block">Please specify the name of business.(May 
         be it is a brand name)</p><br /> 
       </div> 

       <div class="control-group"> 
        <label class="control-label" for="input01">Address</label> 
        <div class="controls"> 
         <input type="text" class="input-xlarge" id="ad"> 
         <p class="help-block">To use lines please specify 
          &lsaquo;br/&rsaquo; tag.</p><br/> 
          <div id="map"></div> 
        </div> 

        <div class="control-group"> 
         <label class="control-label" for="textarea">Description</label> 
         <div class="controls"> 
          <textarea class="input-xlarge" id="textarea" rows="10"></textarea> 
         </div> 

        </div> 

        <label class="control-label" for="input01">Categories</label> 
        <div class="controls"> 
         <input type="text" class="input-xlarge" id="input01"> 
         <p class="help-block">Use comma as a separator.</p><br /> 
        </div> 

     </fieldset> 
    </form> 


</div> 

<script src="js/jquery.js"></script> 
<script src="js/bootstrap-transition.js"></script> 
<script src="js/bootstrap-alert.js"></script> 
<script src="js/bootstrap-modal.js"></script> 
<script src="js/bootstrap-dropdown.js"></script> 
<script src="js/bootstrap-scrollspy.js"></script> 
<script src="js/bootstrap-tab.js"></script> 
<script src="js/bootstrap-tooltip.js"></script> 
<script src="js/bootstrap-popover.js"></script> 
<script src="js/bootstrap-button.js"></script> 
<script src="js/bootstrap-collapse.js"></script> 
<script src="js/bootstrap-carousel.js"></script> 
<script src="js/bootstrap-typeahead.js"></script> 

</body> 
</html> 

但是,這裏是JavaScript的東西。

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script> 
<script type="text/javascript"> 
$("#address").change(function() { 
    var geocoder = new google.maps.Geocoder(); 
    var add = $("#address").val(); 
    geocoder.geocode({ 'address': add}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
    var latitude = results[0].geometry.location.lat(); 
    var longitude = results[0].geometry.location.lng(); 
    var map; 
    function initialize() { 
     var myOptions = { 
      zoom: 8, 
      center: new google.maps.LatLng(latitude, longitude), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById('map'), 
      myOptions); 
     } 

     google.maps.event.addDomListener(window, 'load', initialize); 
}; 
});​ 
</script> 

這裏是我添加我的地圖的div。

<div class="control-group"> 
        <label class="control-label" for="input01">Address</label> 
        <div class="controls"> 
         <input type="text" class="input-xlarge" id="ad"> 
         <p class="help-block">To use lines please specify 
          &lsaquo;br/&rsaquo; tag.</p><br/> 
          <div id="map"></div> 
        </div> 
+0

'pJgyu'似乎與地圖沒有多大關係。無論如何,它都可以工作。有太多的代碼需要通過這裏:你可以給你的例子鏈接不起作用嗎? 「不工作」是什麼意思?怎麼了?你期望看到什麼?我們如何重現問題? – 2012-04-24 06:35:48

回答

1

我做你的代碼的快速掃描,並似乎有一些基本的編碼問題:

  1. 你出現在intialize函數來創建地圖,但你的初始化功能似乎被嵌入到更大的.change()回調函數中;我看不到你的地圖將如何顯示。
  2. 您的JavaScript代碼專注於jQuery搜索元素的ID爲:地址,但在您的標記中似乎沒有該id的元素。
  3. 定義包含文本地址的標籤說,它是一個標籤:input01,但你必須在你的標記2種不同的元素已分配的ID:input01
  4. 有多個標籤被標記爲:input01
  5. 您在文件底部定義的所有腳本標記都缺少類型屬性。

我認爲你有太多的基本編碼錯誤,它看起來像你可能在提交審查過程中可能有亂碼的代碼?很難說,但我希望我的反饋很有幫助,並會幫助您更接近您的目標。