![]() |
|
|
Themen-Optionen |
|
|
#1
|
|
log out.dll not found
![]() ![]() Registriert seit: 18.06.2006
Ort: Dresden
Beiträge: 618
Kamera: Digikam @ Kodak EasyShare Z740 |
JS Variable in Funktion definieren und außerhalb nutzenHallo liebe Leute,
ich ermittle mit einer Funkton den aktuellen Standort des Nutzers und lasse diesen auf der Google-Maps Karte anzeigen (mithilfe der Google Maps API). Das funktioniert auch soweit, jetzt war nur mein Problem, wie ich den Standwort in eine PHP Variable übergebe, damit ich in einer MySQL Datenbank mit den Werten "spielen" kann. Das wollte ich mit jQuery lösen: Code:
$(window).load(function () {
$.get("./files/get.AddressData.php?lat="+lati+"&lng="+long,
function(text){
$("#getting_addresses").html(text);
});
});
Hier mal der Code, wie ich den Standort ermittle, und den auch noch auf der Karte anzeige: Code:
function initialize(coords) {
var latlng = new google.maps.LatLng(coords.latitude, coords.longitude);
var lati = coords.latitude;
var long = coords.longitude;
var myOptions = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var akt_pos = new google.maps.InfoWindow ({
content: latlng.toString(),
position: latlng,
map: map,
});
var koordinaten = lati+','+long;
return koordinaten;
}
function start() {
//Position ermitteln und Karte initialisieren
navigator.geolocation.getCurrentPosition(function(position){
//initialize(position.coords);
var koordinaten = initialize(position.coords);
return koordinaten;
}, function(){
document.getElementById('map_canvas').innerHTML = 'Deine Position konnte leider nicht ermittelt werden';
});
}
Wenn ich das einfach so in meine "Hauptdatei" rein schreibe, wird auch der Standort wie gewünscht auf der Karte angezeigt, also klappt bis dahin alles. Nur wenn ich jetzt alert(Test); aufrufe, bekomme ich immer, dass die Variable nicht definiert ist. Kann mir jemand sagen, warum die nicht definiert ist, aber die Funkion trotzdem funktioniert? (Wenns geht ohne meinen Code komplett umzubauen, auch wenn er sicher verbesserungswürdig ist, aber ich verstehe ihn wenigstens einigermaßen Vielen Dank schon mal! |
|
|
|
#2
|
|
Posting-Frequenz: 14µHz
![]() ![]() ![]() ![]() ![]() Registriert seit: 03.02.2006
Ort: Dresden
Beiträge: 3.227
|
In start() wird getCurrentPosition mit zwei Parametern aufgerufen. Beide sind anonyme Funktionen. Diese werden für bestimmte Fälle aufgerufen. Soweit hast du das sicher schon bemerkt.
Das Problem dabei ist, dass es getCurrentPosition völlig egal ist, welche Funktionen dabei aufgerufen werden. Insbesondere schert es sich nicht um den Rückgabewert. Dein Rückgabewert kommt zwar irgendwie wieder in getCurrentPosition rein, aber ab dann wird er ignoriert. Es gibt auch (soweit ich sehe) keine Möglichkeit, dass sie den Wert direkt weitergibt, das sieht die API nicht vor. Dennoch kannst du die Informationen natürlich benutzen, indem du die zu ändernde Variable ausserhalb der anonymen Funktion deklarierst. Dann ist sie global verfügbar. HTML-Code:
var foo = 42;
function bar() {
foo = 99;
}
bar();
alert(foo);
Duddle
__________________
»To a cosmologist, a hundred thousand light-years rounds down to zero.« - RobotRollCall |
|
|
|
#3
|
|
log out.dll not found
![]() ![]() Themenstarter
Registriert seit: 18.06.2006
Ort: Dresden
Beiträge: 618
Kamera: Digikam @ Kodak EasyShare Z740 |
So, jetzt bin ich schon mal einen kleinen Schritt weiter, die Variable außerhalb der Funktionen zu deklarieren:
Code:
navigator.geolocation.getCurrentPosition(function(position){
var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
initialize(latlng);
}, function(){
document.getElementById('map_canvas').innerHTML = 'Deine Position konnte leider nicht ermittelt werden';
});
|
|
|
|
#4
|
|
|
Posting-Frequenz: 14µHz
![]() ![]() ![]() ![]() ![]() Registriert seit: 03.02.2006
Ort: Dresden
Beiträge: 3.227
|
Wahrscheinlich kennst du das Konzept "Sichtbarkeitsbereich" (Scope) noch nicht. Ich zitiere mal aus dem Wiki-Artikel:
Zitat:
Code:
function foo() {
var bar = 21;
bar = bar * 2;
}
if(true) {
alert(bar);
}
Ich weiß nicht genau wie JavaScript es macht, aber in der Regel gelten Bereiche "nach innen" weiter, d.h. falls neue Anweisungsblöcke im aktuellen geöffnet werden sind auch dort die schon definierten Variablen sichtbar. Im Gegenzug dazu funktioniert das nicht "nach aussen" (es sei denn du nutzt globale Variablen). Lange Rede, kurzer Sinn: Im Moment machst du das: Code:
function blub() {
//irgendwas
var x = bla();
}
Code:
var x;
function blub() {
//irgendwas
x = bla();
}
Duddle
__________________
»To a cosmologist, a hundred thousand light-years rounds down to zero.« - RobotRollCall |
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| div box und die display funktion wie nutzen? | XIIZQ | (X)HTML & CSS | 9 | 27.06.2012 15:04 |
| MySQL: WHERE Variable LIKE mit Variable aus Liste | BeastyK | PHP und andere Scriptsprachen | 12 | 14.10.2010 12:44 |
| Java Variable in PHP Variable umwandeln | asupp | PHP und andere Scriptsprachen | 9 | 11.11.2009 20:21 |
| Variable in Wert von Variable schreiben | GeneralFabi | PHP und andere Scriptsprachen | 13 | 24.12.2007 11:09 |
-
Reklame
-
-
- Bei der Bildbearbeitung im Photoshop wird das Billd immer wieder schwarz
- Apache redirect mit .htaccess
- Offline Ordner einlesen
- Dynamisches Logo anhand von URL!?
- Fette Kontur in Pfade umwandeln ?
- exportierte Videos sind zu groß
- Earth & Sky Photo Contest
- Bei falschem Login erfolgt weiterleitung
- Hallo :-)
- Droplets werden nicht ordnungsgemäß abgearbeitet
- Keine Internetverbindung nach PC Start
- CSS content bei Link verschwindet (Opera)
- CHM verliert Inhalt bei Verschieben auf andere Festplatte
- Erfahrungen mit der OfG / Online-Schule für Gestaltung
- Kalender mit Import-Funktion
- 15 sec Spot für Website
- mit hover anderes Element steuern
- Kelvin Einstellungen
- Farbunterschiede beim Einfügen
- Farbe der Selbstillumination
-
-
Aktuelles Commag
Anzeige
-
Anzeige










Social Media