gpt4 book ai didi

javascript - 在另一个变量中使用变量

转载 作者:行者123 更新时间:2023-11-28 16:22:58 25 4
gpt4 key购买 nike

我正在尝试通过 PHP 将值传递给 Javascript 函数,但它不起作用,该值似乎没有通过。当我用静态文本替换变量时,它工作正常。

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

<?php
if (!empty($data['geocode'])) {
echo '<body onload="initializeGM(\'' . $data['geocode'] . '\');">';
} else {
echo '<body>';
}
?>

$data['geocode'] 包含 latlng 作为字符串。

这是 JavaScript 代码..

function initializeGM(geocode) {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(geocode),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}

我在 JS 函数中添加了一个 alert(geocode) 进行测试,效果很好。

如何才能将 geocode 变量传入并使其起作用?

最佳答案

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

new google.maps.LatLng(<?php echo($geocode); ?>);

但是,请注意 LatLng constructor需要 2 个 Number 类型的参数(以及一个可选的 bool 参数),而您只尝试传入一个参数。虽然我可能完全误解了你的意图。

编辑(参见评论)

我没有注意到您将 geocode 作为参数传递给 initializeGM 函数。如果您实际上尝试将 PHP 变量传递到该函数中,则需要修改对 JavaScript 函数的调用以使用 PHP 变量:

initializeGM(<?php echo($geocode); ?>);

上面的“但是”段落仍然适用。您的代码可能会抛出错误,因为 lngLatLng 构造函数中将是 undefined

再次编辑(查看已编辑的问题)

乍一看,您所拥有的内容应该会产生类似的结果(正如您所说的 geocode 包含一个字符串):

<body onload="initializeGM('somelat,somelng');">

理论上这没有什么问题(一个字符串将被传递到 initializeGM),但问题是该函数需要两个 Number 类型的参数,而不是一个 String 类型的参数:

<body onload="initializeGM(100, 200);"> <!--Use real lat-lng values here!-->

这需要更改 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);
}

关于javascript - 在另一个变量中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com