【发布时间】:2018-01-28 04:49:30
【问题描述】:
我试图到处寻找,但我似乎找不到答案,而且似乎根本无法弄清楚我在这里做错了什么。目前的问题是 JS 中的 var postLink 没有从 XML 中的 postLink 获取值。
所以我想做的是在谷歌地图上添加标记。所有标记数据都存储在 mysql 数据库中。根据 Google 提供的文档,转换为使用 PHP 先转换为 XML 比将其用于 JS 中的所有变量要快。
PHP 似乎很好地回显了 XML,所以我猜测问题出在 JS 的某个地方。为了完整起见,我将两者都发布(为了简单起见,直到出现问题为止)。
JS:
downloadUrl('PHP/markerInfoXML.php', function (data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName('markers');
Array.prototype.forEach.call(markers, function (markerElem) {
var postLink = markerElem.getAttribute('postLink');
});
});
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, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
PHP
<?php
header('Content-Type: text/plain');
include('connection.php');
// Select all the rows in the markers table
$sql = "SELECT * FROM markerinfo";
$result = $conn->query($sql);
$doc = new DOMDocument('1.0');
$node = $doc->createElement("markers");
$parnode = $doc->appendChild($node);
while ($row = $result->fetch_assoc()) {
$node = $doc->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("postLink", $row['postLink']);
}
$xmlfile = $doc->savexml();
echo $xmlfile
?>
PHP 的 XML 输出:
<markers><marker postLink="https://steemit.com/travel/@martibis/when-the-road-calls-1"/></markers>
如果这里有人可以为我指明正确的方向,那就太棒了!
【问题讨论】:
-
有什么问题?
-
在 JS 中,var postLink 没有得到任何值(我应该将它添加到帖子中)!
标签: javascript php xml google-maps