0

これは Web プログラミングに関する初心者の質問です。基本的に、Google Map API を使用してデフォルトの住所を表示するページがあります。「221B Baker Street、London、United Kingdom」の検索は正常に機能しますが、住所を書き込んで検索できるようにしたいテキストボックスがあります。これはcshtmlページであり、かみそりの構文を知っています

@{if(IsPost) { do something }}

したがって、基本的にはRequest.Form["FindAddress"];テキストボックスから取得し、それを javascript myAddress 変数に設定して、代わりにユーザーのアドレスが表示されるようにしたいと思います。しかし、インラインコーディングの方法がわかりません。JavaScript 関数の -tag 内に IsPost 条件を配置すると、構文エラーが発生し続けます。ここに完全なページがあります

<!DOCTYPE html>

<html>

<head id="head">
<title></title>
<link href="@Server.MapPath("~/Styles/Site.css")" rel="stylesheet" type="text/css" />
</head>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=<YOUR_API_KEY>&sensor=false"
        type="text/javascript"></script>
<script type="text/javascript">

    var myAddress = "221B Baker Street, London, United Kingdom"; // how do I overwrite this if it is (isPost)?


    var map;
    var geocoder;
    function initialize() {
        if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map"));
            map.setCenter(new GLatLng(51.5, -0.1), 10);
            map.setUIToDefault();

            geocoder = new GClientGeocoder();                   
            showAddress(myAddress);
        }
    }
    function showAddress(address) {
        geocoder.getLatLng(address, function (point) { if (!point) { alert(address + " not found"); } else { map.setCenter(point, 15); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindow(address); } });
    }
</script>

<body onload="initialize()" onunload="GUnload()">
    <form id="form1" runat="server">
        <div>
            <input type="text" id="FindAddress" name="FindAddress" />
        </div>
        <div id="map" style="width: 500px; height: 500px"></div>
    </form>
</body>

</html>
4

1 に答える 1

0

以下のコードは試していませんが、うまくいくことを願っています。基本的に、条件付きチェック ロジックをスクリプト ブロックの外に配置し、結果を変数に格納し、それを JavaScript で参照します。

@{
  var address = "221B Baker Street, London, United Kingdom";

  if (Request.HttpMethod == "POST")
  {
    address = Request.Form["FindAddress"];
  }  
}

  <script type="text/javascript">

    var myAddress = "@address"; // how do I overwrite this if it is (isPost)?


    var map;
    var geocoder;
    function initialize() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(51.5, -0.1), 10);
        map.setUIToDefault();

        geocoder = new GClientGeocoder();
        showAddress(myAddress);
      }
    }
    function showAddress(address) {
      geocoder.getLatLng(address, function (point) { if (!point) { alert(address + " not found"); } else { map.setCenter(point, 15); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindow(address); } });
    }
  </script>
于 2012-05-21T14:29:37.480 に答える