2

私はワードプレスのテーマで作業しています。管理コントロール パネルでテーマの設定を追加しました。ここで、地図の経度と緯度などの変数を書き込めます (機能します)。お問い合わせフォームですが、これは機能しません。問題は私が使用していることだと思います

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/contact-form/contactform.js"></script>

実際、地図で同じことをすると、今は

<div id="gmapp"></div>
            <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
            <script type="text/javascript">
                var lat;
                var lng;
                lat=<?php echo($GLOBALS['desklab_theme_settings']['latcord_text']);?>;
                lng=<?php echo($GLOBALS['desklab_theme_settings']['lngcord_text']);?>;
                var latlng = new google.maps.LatLng(lat,lng);

                var options = {
                    zoom: 15,
                    center: latlng,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };  

                var map = new google.maps.Map(document.getElementById('gmapp'), options);

                var marker = new google.maps.Marker(
                {
                    position: latlng,
                    map: map
                }
                );

            </script>

私はそう書いてみました:

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/contact-form/map.js"></script>

しかし、マップが表示されず、変数が見つかりません。

緯度と経度の場合と同じように、設定から変数を取得するにはどうすればよいですか? マップで行ったように、js コードを php に記述する必要がありますか?

4

4 に答える 4

1

コードの一部を map.js ファイルに移動する必要があります。

//map.js
var generateMap = function(lat,lng) {
  var latlng = new google.maps.LatLng(lat,lng);
  var options = {
         zoom: 15,
         center: latlng,
         mapTypeId: google.maps.MapTypeId.ROADMAP
  };  

  var map = new google.maps.Map(document.getElementById('gmapp'), options);

  var marker = new google.maps.Marker(
      {
         position: latlng,
         map: map
       }
  );
}

そしてあなたのphpから、

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/contact-form/map.js"></script>
<script type="text/javascript" >
  var lat=<?php echo($GLOBALS['desklab_theme_settings']['latcord_text']);?>;
  var lng=<?php echo($GLOBALS['desklab_theme_settings']['lngcord_text']);?>;
  generateMap(lat,lng);
</script>

PHP から JS へのデータの受け渡しに関するその他のソリューションについては、この SO の質問を参照してください。

于 2012-12-09T12:26:22.260 に答える
1

PHP エンジンが解析できるように、map.js ファイルの名前を map.php などに変更する必要があります。次に、ソースは次のようになります。

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/contact-form/map.php"></script>

コンテンツは、PHP 変数が配置された JavaScript のままです。

于 2012-12-09T12:26:43.880 に答える
1

1つの提案。以前のものは廃止されているため、使用する代わりに使用bloginfo('template_url')を開始する必要があります。get_template_directory_uri()

PS。投稿に返信しない限り、コメント権限はありません。

于 2012-12-09T13:43:35.027 に答える
0

エコーを忘れないでください

<script type="text/javascript" src="<?php echo bloginfo('template_url'); ?>/contact-form/map.js"></script>
于 2012-12-09T12:22:14.547 に答える