2012-04-23 9 views
0

私は自分のフォームのためにGoogleマップを追加しようとしているので、アドレスを入力するとマップを表示した後、緯度と経度をデータベースに送信します。これまでは実装できませんでした。私はjsfiddleで試してみました。しかし、私はページに追加しようとすると動作しません。 http://jsfiddle.net/pborreli/pJgyu/フォーム用のGoogleマップ

ここは完全なページです。

<!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'はマップとはあまり関係がないようです。そして、どんな場合でも、それは動作します。ここを歩き回るにはあまりにも多くのコードがあります:うまくいかないあなたの例へのリンクを与えることができますか? 「機能しない」とはどういう意味ですか?何が起こるのですか?代わりにあなたは何を見たいですか?どのように問題を再現しますか? –

答えて

1

私はあなたのコードのクイックスキャンを行い、いくつかの基本的なコーディングの問題があるように思えてきました:

  1. あなたはintialize機能であなたのマップを作成するように見えるが、あなたの初期化関数がに表示されます大きな.change()コールバック関数の中に埋め込まれていること。あなたのマップがどのように表示されるのか分かりません。 アドレスが、あなたのマークアップでそのidを持つ要素があるように表示されません:
  2. あなたのJavaScriptコードは、idを持つ要素のためのjQueryの検索に焦点を当てています。
  3. あなたはそれを定義するラベルが含まれているテキスト住所は、それがためのラベルであることを言う:input01が、あなたはIDが割り当てられているマークアップでは、2つの異なる要素を持っている:input01を。
  4. 入力01のラベルとしてマークされている複数のラベルがあります。
  5. ファイルの末尾に定義したすべてのスクリプトタグにタイプの属性がありません。

あなたは基本的なコーディングエラーが多すぎると思いますが、レビューのために送信している間にコードが文字化けする可能性がありますか?それは伝えにくいですが、フィードバックが役立ち、目標に近づくのに役立つことを願っています。