javascript - 谷歌地图类型错误: xml is undefined

标签 javascript php mysql google-maps mysqli

我目前正在开发一个使用谷歌地图和ajax的网络应用程序。我对这些技术都是新手,所以我不确定我做的事情是否正确。我按照 https://developers.google.com/maps/articles/phpsqlsearch_v3 上有关如何创建一个的说明进行操作。 。这是我的代码片段:

function searchNearLocations(radius){
        var searchUrl = './designIncludes/phpLogicIncludes/searchMarkers.php?lat=' + myLat +'&lng=' + myLng + '&radius=' + radius;
        downloadUrl(searchUrl, function(data) {
            var xml = parseXml(data);
            var markerNodes = xml.documentElement.getElementsByTagName("marker");
            var bounds = new googlemaps.LatLngBounds();
            for (var i = 0; markerNodes.Length; i ++){
                var name = markerNodes[i].getAttribute("name");
                var address = markerNodes[i].getAttribute("address");
                var info = markerNodes[i].getAttribute("info");
                var tts = markerNode[i].getAttribute("tts");
                var slatlng = new google.maps.LatLng(
                    parseFloat(markerNodes[i].getAttribute("lat")),
                    parseFloat(markerNodes[i].getAttribute("lang")));

                createOption(name,distance,i);
                createMarker(latlng,name,address);
                bounds.extend(latlng);
            }
        map.fitBounds(bounds);              
        });
    };

function createMarker(slatlng,name,address,info,tts){
    var html = "<b>" + name + "</b></br><u>" + address + "</u></br>" + info + "</br>" + "Time allowance to spend: " + tts;
    var marker = new google.maps.Marker({
        map:map,
        position:slatlng
    });
    google.maps.event.addListener(marker,'click',function(){
        infoWindow.setContent(html);
        infoWindow.open(map,marker);
    });
    markers.push(marker);
};

function downloadUrl(url,callback){
    var request = window.ActiveXObject ?
        new ActiveXObject('Microsoft.XMLHTTP') : 
        new XMLHttpRequest;

    request.onreadystatechange = function() {
        if(request.readyState == 4){
            request.onreadystatechange = doNothing;
            callback(request.responseText, request.status);
        }
    };
    request.open('GET',url,true);
    request.send(null);     
};

function parseXml(str){
    if (window.ActiveXObject){
        var doc = new ActiveXObject('MicrosoftXMLDOM');
        doc.loadXML(str);
        return doc;
    }else if (window.DOMParse){
        return (new DOMParser).parseFromString(str,'text/xml');
    }
};

function doNothing(){};    

我不知道为什么,但是当我使用 Mozilla 的控制台窗口时,我总是收到错误代码 xml 未定义。我不知道该怎么做,因为我对这两种技术特别是 javascript 都很陌生。当我点击错误时,我指出

var markerNodes = xml.documentElement.getElementsByTagName("marker");  

我什至不知道如何检查我的 php 脚本是否正常工作。我使用 mysqli 而不是上面谷歌地图 tut 链接上的 mysql。我希望你们能帮助我。如果这是重复的,请给我发送一个链接。

最佳答案

如果 window.ActiveXObjectwindow.DOMParse 都不存在,您的 parseXml 函数将返回 null

function parseXml(str){
    if (window.ActiveXObject){
        var doc = new ActiveXObject('MicrosoftXMLDOM');
        doc.loadXML(str);
        return doc;
    }else if (window.DOMParse){
        return (new DOMParser).parseFromString(str,'text/xml');
    }
};

您有一个拼写错误 DOMParse 应该是 DOMParser (就像 tutorial you reference 中的那样)

function parseXml(str){
    if (window.ActiveXObject){
        var doc = new ActiveXObject('MicrosoftXMLDOM');
        doc.loadXML(str);
        return doc;
    }else if (window.DOMParser){
        return (new DOMParser).parseFromString(str,'text/xml');
    }
};

关于javascript - 谷歌地图类型错误: xml is undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27731258/

相关文章:

javascript - Spring项目中在新窗口中打开jsp

php - 用于上传 .csv 并将数据添加到 mysql 数据库的预构建 GUI

mysql - 在mysql集群中运行mysql

mysql - 通过其他表将一个表连接到另一个表

php - 更新查询不更新Mysql中的记录但总是返回true

javascript - 自动循环隐藏的div

javascript - 为什么我不能用 jQuery 删除这些 div?

php - 如何在 Eclipse for PHP 中抑制警告?

php - nohup >/dev/null windows 的替代方案

javascript - 通过用户名从 Spotify 获取公共(public)播放列表