Php 将mysql页面更改为mysqli,现在google maps initMap函数抛出错误?
我将此页面更改为mysqli并切换了数据库。我只改变了连接和查询 如果删除查询,则地图显示时不带标记 如果添加查询,映射将消失,并告诉我initMap()未定义。var_转储显示查询工作正常 我做错了什么??这真的很奇怪 提前感谢您的帮助。我最初将代码改编自Php 将mysql页面更改为mysqli,现在google maps initMap函数抛出错误?,php,javascript,mysql,google-maps,Php,Javascript,Mysql,Google Maps,我将此页面更改为mysqli并切换了数据库。我只改变了连接和查询 如果删除查询,则地图显示时不带标记 如果添加查询,映射将消失,并告诉我initMap()未定义。var_转储显示查询工作正常 我做错了什么??这真的很奇怪 提前感谢您的帮助。我最初将代码改编自 var icon=new google.maps.MarkerImage(“http://maps.google.com/mapfiles/ms/micons/red.png", 新的google.maps.Size(32,32),新的go
var icon=new google.maps.MarkerImage(“http://maps.google.com/mapfiles/ms/micons/red.png",
新的google.maps.Size(32,32),新的google.maps.Point(0,0),
新的google.maps.Point(16,32));
var中心=null;
var-map=null;
var-currentPopup;
var bounds=new google.maps.LatLngBounds();
功能添加标记(lat、lng、info){
var pt=新的google.maps.LatLng(lat,lng);
边界扩展(pt);
var marker=new google.maps.marker({
职位:pt,
图标:图标,
地图:地图
});
var popup=new google.maps.InfoWindow({
内容:“”+信息+“”,
最大宽度:300,
});
google.maps.event.addListener(标记“单击”,函数(){
如果(currentPopup!=null){
currentPopup.close();
currentPopup=null;
}
弹出。打开(地图、标记);
当前弹出=弹出;
});
google.maps.event.addListener(弹出窗口“closeclick”,函数(){
潘托地图(中);
currentPopup=null;
});
}
函数initMap(){
map=new google.maps.map(document.getElementById(“map”){
中心:新google.maps.LatLng(0,0),
缩放:14,
mapTypeId:google.maps.mapTypeId.HYBRID,
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.HORIZONTAL\u栏
},
导航控制:对,
导航控制选项:{
样式:google.maps.NavigationControlStyle.DEFAULT
}
});
问题是,新数据库在lat/lng字段中有一个空默认值。我将其更改为没有默认值(顺便说一句,它是一个浮点值)。感谢您提供的有用意见
我们都知道,我自学成才,在编码知识上有很大的差距。如果有人想解释我的代码在哪里更好,为什么更好,老师,我会很感激你的智慧。echo(“addMarker($lat,$lng,“”)。$name.
$addr2
$city,$state$zip
$country”);\n);让我困惑。为什么在一个项目上使用字符串连接?两个问题:为什么不检查查询的返回值?我猜它返回了一个错误,但你永远不会知道。为什么要从位置
表中选择所有内容?第三个问题:你是否打开了数据库连接并初始化了$dbc
se检查控制台以了解更多错误。如果不查看echo的输出,我们无法回答此问题。可能数据库中存储的值包含一些有问题的字符(换行符或单引号)。我对Google maps非常陌生,因此这就是字符串concat的原因。您有更好的建议吗?我乐于接受新想法。
var icon = new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/red.png",
new google.maps.Size(32, 32), new google.maps.Point(0, 0),
new google.maps.Point(16, 32));
var center = null;
var map = null;
var currentPopup;
var bounds = new google.maps.LatLngBounds();
function addMarker(lat, lng, info) {
var pt = new google.maps.LatLng(lat, lng);
bounds.extend(pt);
var marker = new google.maps.Marker({
position: pt,
icon: icon,
map: map
});
var popup = new google.maps.InfoWindow({
content: '<div style="color: #000">' + info + '</div>',
maxWidth: 300,
});
google.maps.event.addListener(marker, "click", function() {
if (currentPopup != null) {
currentPopup.close();
currentPopup = null;
}
popup.open(map, marker);
currentPopup = popup;
});
google.maps.event.addListener(popup, "closeclick", function() {
map.panTo(center);
currentPopup = null;
});
}
function initMap() {
map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(0, 0),
zoom: 14,
mapTypeId: google.maps.MapTypeId.HYBRID,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
},
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.DEFAULT
}
});
<?php
$query = mysqli_query($dbc, "SELECT * FROM location");
while ($row = mysqli_fetch_array($query)){
$name=$row['name'];
$addr1=$row['address'];
$addr2=$row['address2'];
$city=$row['city'];
$state=$row['state'];
$zip=$row['zip'];
$country=$row['country'];
$lat=$row['lat'];
$lng=$row['lng'];
echo ("addMarker($lat, $lng,'<p>". $name ."</p><br/>$addr2<br/>$city, $state $zip<br />$country');\n");
}
?>
center = bounds.getCenter();
map.fitBounds(bounds);
}
</script>
</head>
<body onLoad="initMap()" style="margin:0px; border:0px; padding:0px;">
<div class="container">
<?php
var_dump($lat, $lng, $addr2);
?>
<div class="content">
<h1 class="marked" align="left">
<div id="child" >The Big Map</div></h1><br />
<br/>
<div id="map"></div><br/>
</div>
<br/>