-1
感謝您的時間。 我正在研究基於Google開發人員的作業項目:https://developers.google.com/maps/articles/phpsqlsearch_v3#outputxml。基本上我使用PHP從URL中拉取XML內容,然後使用JavaScript在HTML文件中讀取它。有趣的東西吧?我從來沒有寫過PHP,所以我不確定我是否正確地編寫了它。下面是我的PHP:PHP引入來自URL的XML
<?php
// Get parameters from URL - PHP accepting 2 variables from index.html
$address = $_GET["address"];
$radius = $_GET["radius"];
// ------------------------------------------------------------------
// Start XML file
$dom = new \DOMDocument("1.0");
header("Content-type: text/xml");
$dom = file_get_contents('http://api.remix.bestbuy.com/v1/stores(area(' + $address + ',' + $radius + '))?show=name,address,distance,lat,lng&apiKey=fuzgmrj4nv8v9ummatn78m3k');
file_put_contents('file.xml', $dom);
echo $dom->saveXML();
?>
這是閱讀PHP生成的xml的JavaScript:
function searchLocationsNear(center) {
clearLocations();
var address = document.getElementById("addressInput").value;
var radius = document.getElementById('radiusSelect').value;
var searchUrl = 'phpGenXML.php?address=' + address + '&radius=' + radius;
downloadUrl(searchUrl, function(data) {
var xml = parseXml(data);
var markerNodes = xml.documentElement.getElementsByTagName("marker");
var bounds = new google.maps.LatLngBounds();
//Create markers
for (var i = 0; i < markerNodes.length; i++) {
var name = markerNodes[i].getAttribute("name");
var address = markerNodes[i].getAttribute("address");
var distance = parseFloat(markerNodes[i].getAttribute("distance"));
var latlng = new google.maps.LatLng(
parseFloat(markerNodes[i].getAttribute("lat")),
parseFloat(markerNodes[i].getAttribute("lng")));
createOption(name, distance, i);
createMarker(latlng, name, address);
bounds.extend(latlng);
}
map.fitBounds(bounds);
locationSelect.style.visibility = "visible";
locationSelect.onchange = function() {
var markerNum = locationSelect.options[locationSelect.selectedIndex].value;
google.maps.event.trigger(markers[markerNum], 'click');
};
});
}
所以我很擔心,我做錯了什麼,而在XML拉動。任何人都可以告訴我,如果它看起來好嗎?
感謝, 湯米
[代碼審查(http://codereview.stackexchange.com/)將是這更好的地方 –