Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP数组传递到Javascript中_Php_Jquery_Google Maps Api 3 - Fatal编程技术网

将PHP数组传递到Javascript中

将PHP数组传递到Javascript中,php,jquery,google-maps-api-3,Php,Jquery,Google Maps Api 3,我在PHP中有一个如下所示的数组 array( (int) 0 => array( 'id' => '1', 'name' => 'Mink7', 'about' => 'Creative Design agency', 'logo' => null, 'lat' => '13.004870000000', 'lng' => '77.576686084

我在PHP中有一个如下所示的数组

array(
    (int) 0 => array(
        'id' => '1',
        'name' => 'Mink7',
        'about' => 'Creative Design agency',
        'logo' => null,
        'lat' => '13.004870000000',
        'lng' => '77.576686084656'
    ),
    (int) 1 => array(
        'id' => '2',
        'name' => 'Bakasura',
        'about' => 'Live 2 Eat',
        'logo' => null,
        'lat' => '13.005643569006',
        'lng' => '77.577485382942'
    )
)
我做了什么。 我在标题中加载函数,并在body标记中写入以下内容

<script type="text/javascript">
$(document).ready(function(){
        var startups = <?php echo json_encode($startups); ?>;
        $.each(startups, function(key, val) {
            markMe(val.lat, val.lng, val.name, val.description, val.logo);
        });
});
</script>

$(文档).ready(函数(){
var初创公司=;
美元。每个(启动、功能(键、val){
markMe(val.lat、val.lng、val.name、val.description、val.logo);
});
});
我得到以下错误

markMe没有定义

markMe(val.lat、val.lng、val.name、val.description、val.logo)

附加到头部的Javascript文件

// JavaScript Document
$(document).ready(function () {
    var map = new GMaps({
        div: '#map',
        lat: 13.00487,
        lng: 77.576729,
        zoom: 13,
    });

    /*
    GMaps.geolocate({
        success: function (position) {
            map.setCenter(position.coords.latitude, position.coords.longitude);
        },
        error: function (error) {
            alert('Geolocation failed: ' + error.message);
        },
        not_supported: function () {
            alert("Your browser does not support geolocation");
        },
        always: function () {
            //alert("Done!");
        }
    });
    */

    map.addControl({
        position: 'top_right',
        text: 'Geolocate',
        style: {
            margin: '5px',
            padding: '1px 6px',
            border: 'solid 1px #717B87',
            background: '#fff'
        },
        events: {
            click: function () {
                GMaps.geolocate({
                    success: function (position) {
                        map.setCenter(position.coords.latitude, position.coords.longitude);
                    },
                    error: function (error) {
                        alert('Geolocation failed: ' + error.message);
                    },
                    not_supported: function () {
                        alert("Your browser does not support geolocation");
                    }
                });
            }
        }
    });

    map.addMarker({
        lat: 13.00487,
        lng: 77.576729,
        title: 'Lima',
        icon: "http://i.imgur.com/3YJ8z.png",
        infoWindow: {
          content: '<p>HTML Content</p>'
        }
    });

    function markMe(lat, lng, name, description, logo){
        map.addMarker({
            lat: lat,
            lng: lng,
            title: name,
            icon: "http://i.imgur.com/3YJ8z.png",
            infoWindow: {
              content: description
            }
        });
    }

});
//JavaScript文档
$(文档).ready(函数(){
var map=新GMAP({
分区:“#地图”,
lat:13.00487,
液化天然气:77.576729,
缩放:13,
});
/*
地理定位({
成功:职能(职位){
map.setCenter(position.coords.lation,position.coords.longitude);
},
错误:函数(错误){
警报(“地理定位失败:”+错误消息);
},
不支持:函数(){
警报(“您的浏览器不支持地理位置”);
},
始终:函数(){
//警报(“完成!”);
}
});
*/
map.addControl({
位置:“右上方”,
文本:“地理定位”,
风格:{
边距:“5px”,
填充:“1px 6px”,
边框:“实心1px#717B87”,
背景:“#fff”
},
活动:{
单击:函数(){
地理定位({
成功:职能(职位){
map.setCenter(position.coords.lation,position.coords.longitude);
},
错误:函数(错误){
警报(“地理定位失败:”+错误消息);
},
不支持:函数(){
警报(“您的浏览器不支持地理位置”);
}
});
}
}
});
map.addMarker({
lat:13.00487,
液化天然气:77.576729,
标题:“利马”,
图标:“http://i.imgur.com/3YJ8z.png",
信息窗口:{
内容:'HTML内容

' } }); 功能标记(lat、lng、名称、说明、徽标){ map.addMarker({ 拉特:拉特, 液化天然气:液化天然气, 标题:姓名, 图标:“http://i.imgur.com/3YJ8z.png", 信息窗口:{ 内容:说明 } }); } });
在PHP中查找,并在JavaScript中使用
JSON.parse
(如果需要广泛的浏览器支持,可以使用类似
jQuery.parseJSON
的库)

--更新后

而不是 功能标记(lat、lng、名称、说明、徽标){

做: markMe=功能(lat、lng、名称、说明、徽标){

这是因为函数中声明的函数在该函数之外不可用

请在PHP中查找,并在JavaScript中使用
JSON.parse
(如果需要广泛的浏览器支持,可以使用类似
jQuery.parseJSON
的库)

--更新后

而不是 功能标记(lat、lng、名称、说明、徽标){

做: markMe=功能(lat、lng、名称、说明、徽标){


这是因为在函数中声明的函数在该函数之外是不可用的

在回答之前,我想指出我正在做一些假设

  • 我假设上面的数组是用php编写的
  • 我假设下面的函数是javascript
  • 如果是这种情况,您可以将数组引用放入javascript函数中,它就会工作

    我在猜测您的数据映射,我建议更好的方法是使用php构建整个函数,并使用方法调用将其输出到屏幕,以使代码更易于阅读/理解

    不过,在创建方法调用之前,我先猜测一下您的映射,并测试代码是否工作,然后再运行类似这样的代码

    <script type="text/javascript">
    <?php
     foreach($array as $point)
     {
    ?>
     {
     map.addMarker({
      lat: <?php print $point["lat"]; ?>,
      lng: <?php print $point["lng"]; ?>,
      title: <?php print $point["name"]; ?>,
         icon: <?php if(!is_null($point["logo"]){ print $point["logo"];} ?>,
         infoWindow: {
           content: <?php print $point["about"]; ?>
         }
     });
     <?php } ?>
    </script>
    
    
    {
    map.addMarker({
    拉丁语:,
    液化天然气:,
    标题:,
    偶像:
    
    谢谢


    尼古拉斯

    在回答之前,我想指出我正在做一些假设

  • 我假设上面的数组是用php编写的
  • 我假设下面的函数是javascript
  • 如果是这种情况,您可以将数组引用放入javascript函数中,它就会工作

    我在猜测您的数据映射,我建议更好的方法是使用php构建整个函数,并使用方法调用将其输出到屏幕,以使代码更易于阅读/理解

    不过,在创建方法调用之前,我先猜测一下您的映射,并测试代码是否工作,然后再运行类似这样的代码

    <script type="text/javascript">
    <?php
     foreach($array as $point)
     {
    ?>
     {
     map.addMarker({
      lat: <?php print $point["lat"]; ?>,
      lng: <?php print $point["lng"]; ?>,
      title: <?php print $point["name"]; ?>,
         icon: <?php if(!is_null($point["logo"]){ print $point["logo"];} ?>,
         infoWindow: {
           content: <?php print $point["about"]; ?>
         }
     });
     <?php } ?>
    </script>
    
    
    {
    map.addMarker({
    拉丁语:,
    液化天然气:,
    标题:,
    偶像:
    
    谢谢


    Nicholas

    是的,我尝试过那种方法..但是我得到了以下错误markMe未定义markMe(val.lat,val.lng,val.name,val.description,val.logo);是的,我尝试过那种方法..但是我得到了以下错误markMe未定义markMe(val.lat,val.lng,val.name,val.description,val.logo);使用$。每个函数我都可以进行迭代。但是它说该函数丢失了。对不起,我的答案是在问题被编辑之前给出的,并且不明显您正在进行JSON调用。我仍然没有进行JSON调用。我正在将数组转换为JSON并将其分配给variableis php或js?php中的顶级数组。我是JSON\e在下一步中编码。编辑我的问题以显示claritywith$。每个函数我都可以进行迭代。但它表示该函数丢失。抱歉,在编辑问题之前,我给出了答案,您没有进行JSON调用。我仍然没有进行JSON调用。我正在将数组转换为JSON并将其分配给变奏曲