Hallo Leute, folgender Code soll nach Eingabe einer Stadt die entsprechende Googlemap-Karte laden. Allerdings funktioniert das Parsen der XML-Datei nicht, wie gewollt. $('#lng').val(loc.find('lng').text()); liefert beispielsweise [object] [object]. Ich kann mich dunkel daran erinnern, dass der Code vor längerer Zeit noch funktionierte. Hat Jquery die xml-Methoden verändert? Wie muss der Code korrigiert werden??
Javascript:
<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<title> JQUERY und Google </title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style></style>
</head>
<body>
<div id="uhr"></div>
<center><h3>Searching for places</center></h3>
<p> Dieses AJAX-Script findet eingegegebene Plätze ihrer Wahl und zeigt diese auf einer Karte an</p>
<input id="ort" placeholder="Hier den Ort eingeben" value="Stuttgart" type="text"><br><br>
<input id="send" type="submit"><br><br>
<div id="ergebnis">
<input id="lat" readonly='true'>
<input id="lng" readonly='true'>
<a id="map" href='https://www.youtube.com/watch?v=SvnBbmfUCMQ'>Map</a>
</div>
<?php
?>
<script>
function ticken(){
var stunden, minuten, sekunden;
var StundenZahl, MinutenZahl, SekundenZahl;
var heute;
heute = new Date();
StundenZahl = heute.getHours();
MinutenZahl = heute.getMinutes();
SekundenZahl = heute.getSeconds();
stunden = StundenZahl+":";
if (MinutenZahl < 10)
minuten = "0" + MinutenZahl + ":";
else
minuten = MinutenZahl + ":";
if (SekundenZahl < 10)
sekunden = "0" + SekundenZahl + " ";
else
sekunden = SekundenZahl + " ";
zeit = stunden + minuten + sekunden + " Uhr";
uhr.innerHTML = zeit;
window.setTimeout("ticken();", 1000);
}//End of ticken
window.onload = ticken;
$(document).ready(function () {
var url = 'http://maps.googleapis.com/maps/api/geocode/xml?address=';
var suf = '&sensor=true_or_false';
$.ajaxSetup({
type: "GET", //es hat sich zur Regel gemacht, die Methoden GET und POST groß zu schreiben
dataType: "xml", // festlegen auf XML, automatisch parsen lassen
// Daten -> responseXML
//converters nicht ändern, default ist i.O.
contentType: "text/xml"
//garantiert das Parsen nach Erhalt
});
$('#send').click(function () {
//erst testen, ob gültige Eingabe
var ort = $('#ort');
if (ort.val().length == 0) {
$('#lat').val('');
$('#lng').val('');
alert("Bitte einen gültigen Ort eingeben");
return;
}
$.ajax({
//type: "GET",
url: url + ort.val() + suf,
//dataType: "xml",
success: function (xml) {
//ab hier happerts
var loc = $(xml).find('location');
$('#lng').val(loc.find('lng').text());
$('#lat').val(loc.find('lat').text());
// hier ist wieder alles okay. Allerdings wurden obige ID-Felder nicht gefüllt
$('#map').attr('href', 'https://www.google.de/maps/@'
+ $('#lat').val()
+ ','
+ $('#lng').val()
+ ',12z');
}
});//ajax
}); // onclick
}); //ready
</script>
</body>
</html>