WordPress 主题中 PHP 变量到 js 变量

标签 php javascript wordpress variables

我正在使用 WordPress 主题,在管理控制面板中我添加了主题设置,在这里我可以编写一些变量,例如 map 的经度和纬度(有效)以及电子邮件,我需要联系表格,但这不起作用,我想问题是我使用的

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

事实上,如果我对 map 做同样的事情,现在就是

<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>

但是我没有看到 map ,也没有找到变量。

那么我应该怎么做才能像处理 lat 和 lng 一样从设置中获取变量呢?我应该像使用 map 一样在 php 中编写 js 代码吗?

最佳答案

您应该将部分代码移至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>

参见this SO question有关从 PHP 到 JS 数据传递的其他解决方案

关于WordPress 主题中 PHP 变量到 js 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13786890/

相关文章:

javascript - 从单独的文件加载 dropzone,不会加载

php - 在 Android 应用程序中使用 POST 将 JSON 发送到服务器

用于检查远程服务器的 PHP 脚本,文件是否存在

javascript - 如何在所有浏览器中将 <b></b> <i></i> 标签添加到文本区域中的选定文本?

php - WPML - 购物车项目数据自定义字段在切换语言时不更新

css - 在 Wordpress 上显示在其他人后面的菜单项

php - 使用 PHP 和 MySQL 的随机句子

php - Laravel 还是纯 PHP?

javascript - 检查滚动是否被触发

javascript - knockout 对象绑定(bind)