Javascript 在另一个变量中使用变量
我试图通过PHP将一个值传递给Javascript函数,但它不起作用,该值似乎没有通过。当我用静态文本替换变量时,效果很好 我通过一个PHP文件调用该函数,如下所示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
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
,试试这个
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)。是的。。。在上次编辑后不久,我意识到我将两个参数作为一个字符串发布。不知道我为什么这么做哈哈。。。。一定没有集中注意力;)谢谢!!:)