Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Javascript 在另一个变量中使用变量_Javascript_Google Maps - Fatal编程技术网

Javascript 在另一个变量中使用变量

Javascript 在另一个变量中使用变量,javascript,google-maps,Javascript,Google Maps,我试图通过PHP将一个值传递给Javascript函数,但它不起作用,该值似乎没有通过。当我用静态文本替换变量时,效果很好 我通过一个PHP文件调用该函数,如下所示 <?php if (!empty($data['geocode'])) { echo '<body onload="initializeGM(\'' . $data['geocode'] . '\');">'; } else { echo '<body>'; } ?> 我已经在J

我试图通过PHP将一个值传递给Javascript函数,但它不起作用,该值似乎没有通过。当我用静态文本替换变量时,效果很好

我通过一个PHP文件调用该函数,如下所示

<?php
if (!empty($data['geocode'])) {
    echo '<body onload="initializeGM(\'' . $data['geocode'] . '\');">';
} else {
    echo '<body>';
}
?>
我已经在JS函数中添加了一个
警报(geocode)
,以进行测试,它运行良好


我怎样才能将
geocode
变量传入并运行?

假设我正确理解了您的问题,
geocode
是一个PHP变量,您希望将其传递到JavaScript函数调用中。如果是这种情况,则需要
echo
输出PHP变量的值:

new google.maps.LatLng(<?php echo($geocode); ?>);
initializeGM(<?php echo($geocode); ?>);
但上述“然而”一段仍然适用。您的代码可能会抛出错误,因为
lng
将在
LatLng
构造函数中
undefined

再次编辑(参见编辑的问题)

乍一看,您所看到的应该是沿着这些线产生的结果(正如您所说,
geocode
包含一个字符串):

这需要更改JavaScript函数:

function initializeGM(lat, lng) { //2 arguments
    var myOptions = {
        zoom: 8,
        center: new google.maps.LatLng(lat, lng), //Pass 2 arguments to constructor
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}

假设我正确理解了您的问题,
geocode
是一个PHP变量,您希望将其传递到JavaScript函数调用中。如果是这种情况,则需要
echo
输出PHP变量的值:

new google.maps.LatLng(<?php echo($geocode); ?>);
initializeGM(<?php echo($geocode); ?>);
但上述“然而”一段仍然适用。您的代码可能会抛出错误,因为
lng
将在
LatLng
构造函数中
undefined

再次编辑(参见编辑的问题)

乍一看,您所看到的应该是沿着这些线产生的结果(正如您所说,
geocode
包含一个字符串):

这需要更改JavaScript函数:

function initializeGM(lat, lng) { //2 arguments
    var myOptions = {
        zoom: 8,
        center: new google.maps.LatLng(lat, lng), //Pass 2 arguments to constructor
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
构造函数至少接受两个参数,
lat:number
lng:number
。你只通过了一个

假设
$data['geocode']
看起来像
1.234,5.678
,试试这个

  • 将JS函数更改为

    function initializeGM(lat, lng) {
      var myOptions = {
        zoom: 8,
        center: new google.maps.LatLng(lat, lng),
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }
      var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    }
    
  • 把电话改成

    <?php if (!empty($data['geocode'])) :
    $coords = explode(',', $data['geocode']);
    ?>
    <body onload="initializeGM(<?php printf('%.15f, %.15f', $coords[0], $coords[1]) ?>)">
    <?php else : ?>
    <body>
    <?php endif ?>
    
    
    构造函数至少接受两个参数,
    lat:number
    lng:number
    。你只通过了一个

    假设
    $data['geocode']
    看起来像
    1.234,5.678
    ,试试这个

  • 将JS函数更改为

    function initializeGM(lat, lng) {
      var myOptions = {
        zoom: 8,
        center: new google.maps.LatLng(lat, lng),
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }
      var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    }
    
  • 把电话改成

    <?php if (!empty($data['geocode'])) :
    $coords = explode(',', $data['geocode']);
    ?>
    <body onload="initializeGM(<?php printf('%.15f, %.15f', $coords[0], $coords[1]) ?>)">
    <?php else : ?>
    <body>
    <?php endif ?>
    
    
    
    如何将PHP变量传递给函数?
    $data['geocode']
    通常是什么样子?如何将PHP变量传递给函数?
    $data['geocode']
    通常是什么样子?我想他在调用
    initializeGM()
    时传递PHP变量。可能是错误的想法哦,是的,你可能是对的。虽然要将PHP变量传递给
    initializeGM
    ,他需要修改对
    initializeGM
    的调用,这在问题中没有显示。@Brett-乍一看,您的代码看起来不错,但您所做的似乎是错误的方法。请参阅我的编辑。如果我错了,发布生成的HTML(在浏览器中查看源代码并查看实际发送到浏览器的内容,而不是发布生成HTML的PHP)。是的。。。在上次编辑后不久,我意识到我将两个参数作为一个字符串发布。不知道我为什么这么做哈哈。。。。一定没有集中注意力;)谢谢!!:)我认为他在调用
    initializeGM()
    时传递了PHP变量。可能是错误的想法哦,是的,你可能是对的。虽然要将PHP变量传递给
    initializeGM
    ,他需要修改对
    initializeGM
    的调用,这在问题中没有显示。@Brett-乍一看,您的代码看起来不错,但您所做的似乎是错误的方法。请参阅我的编辑。如果我错了,发布生成的HTML(在浏览器中查看源代码并查看实际发送到浏览器的内容,而不是发布生成HTML的PHP)。是的。。。在上次编辑后不久,我意识到我将两个参数作为一个字符串发布。不知道我为什么这么做哈哈。。。。一定没有集中注意力;)谢谢!!:)