PopUp Fenster, Probleme mit Variablen übergabe
chris
- javascript
Hallo, ich muss für mein Studium ein Mashup Programmieren, was die API von Google Maps nutzt.
Für eine Funktion muss ich ein PopUp fenster aufmachen, wenn man auf eine bestimmte adresse klickt.
Jedoch, bekomme ich es nicht hin, die Adress Variable von der einen Datei an eine andere übergeben (beides im Javascript teil).
Hier mein Quellcode:
Zum testen auf meinem localen Webserver:
Index.php
<?php
$address2="Frankfurter Str, Marburg";//Hier Datenbankabfrage
?>
<html>
<head>
<title>Popup-Fenster mit JavaScript</title>
<script type="text/javascript">
function oeffnefenster (url) {
var address2 = "<?php echo $address2; ?>";
fenster = window.open(url, "fenster1", "width=550,height=350,status=yes,scrollbars=yes,resizable=yes");
fenster.focus();
}
</script>
</head>
<body>
<a href="javascript:oeffnefenster('api_popup.php?address=+address2');">Linktext</a>
</body>
</html>
api_popup.php
<?php
$_GET["address"];
echo $_GET["address"];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Lerngruppen Mashup</title>
<script src=
"http://maps.google.com/maps?file=api&v=2&key=XxX"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var geocoder;
var map;
var address = "<?php echo $_GET["address"]; ?>";
//**********************************************************
// Beim Seiten laden, wird die Karte erstellt
function load()
{
if (GBrowserIsCompatible())
{
// Neues Map Objekt wird erzeugt
map = new GMap2(document.getElementById("map"));
// Neues Geocoding Objekt wird erstellt
geocoder = new GClientGeocoder();
// Marker werden bei den Lernorten gesetzt
geocoder.getLocations(address, addMarker);
// Einfügen der Navigations Option
var control = new GLargeMapControl();
map.addControl(control);
// Einfügen der Ansichtsänderungs Option
control = new GMapTypeControl();
map.addControl(control);
}
}
function addMarker(response)
{
if (GBrowserIsCompatible())
{
// Abfragung und zuweisung des Objektes
place = response.Placemark[0];
// Abfragung der Koordinaten
point = new GLatLng(place.Point.coordinates[1],
place.Point.coordinates[0]);
// Zentriert die Karte und Zoomt auf Level 10
map.setCenter(point, 10);
// Erstellt die Markierung
marker = new GMarker(point);
// Fügt die Markierung auf der Karte hinzu
map.addOverlay(marker);
// Fügt Adress Information auf der Karte hinzu
//marker.openInfoWindowHtml(place.address);
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>
Die Api Popup Datei funktioniert einwandfrei.
Der Fehler muss hier sein.
href="javascript:oeffnefenster('api_popup.php?address=+address2');">Linktext</a>
Wenn ich der Übergabe Variable address ein String direkt zuweise, geht es wunderbar. Jedoch kann ich keine Variablen übergeben.
Hoffe hier kann mir jemand helfen.
Danke.
Gruss Chris
hi,
Hallo, ich muss für mein Studium ein Mashup Programmieren, was die API von Google Maps nutzt.
Ziemlich hoher Anspruch ...
Für eine Funktion muss ich ein PopUp fenster aufmachen, wenn man auf eine bestimmte adresse klickt.
Jedoch, bekomme ich es nicht hin, die Adress Variable von der einen Datei an eine andere übergeben (beides im Javascript teil).
... wenn man noch an sowas scheitert.
<a href="javascript:oeffnefenster('api_popup.php?address=+address2');">Linktext</a>
Wenn du an dieser Stelle den Variablenwert "einbauen" wolltest, müsstest du den Link mit Javascript ausgeben, erzeugen, oder seinen href-Inhalt anpassen.
Einfacher wäre es noch, wenn du das gleich im Javascript-Teil machst, wo du das Fenster öffnest.
Vom Link her nur die "Basisadresse" als Parameter übergeben - und dort dann mit dem Variableninhalt verknüpft als Parameter für window.open nutzen.
gruß,
wahsaga
Lieber chris,
function oeffnefenster (url) {
var address2 = "<?php echo $address2; ?>";
fenster = window.open(url + "?address2=" + encodeURI(address2), "fenster1", width=550, height=350, status=yes, scrollbars=yes, resizable=yes");
fenster.focus();
}
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Das Projekt ist nicht ohne und sehr viel arbeit. Das Problem an der Sache ist, dass wir uns Php, Html, Javascript usw. alles selber beibringen müssen und wir damit erst seit ca. 4 Wochen arbeiten. Habe es aber eben noch selber geschafft, so ähnlich wie es Felix mir geschrieben hatte.
Ein Problemchen habe ich noch.
<a href="javascript:oeffnefenster('api_popup.php');">Linktext</a>
Den Linktext muss ich mir aus einer Datenbankholen.
Sprich, da steht z.B Marburg oder Frankfurt, je nachdem was als Ort angegeben wurde.
Mit Php ist das ja kein Problem, aber mit Javascript sieht das schon anders aus.
Hat da jemand eine ahnung?
hi,
Den Linktext muss ich mir aus einer Datenbankholen.
Sprich, da steht z.B Marburg oder Frankfurt, je nachdem was als Ort angegeben wurde.
Mit Php ist das ja kein Problem, aber mit Javascript sieht das schon anders aus.
Javascript kommuniziert nicht mit der Datenbank.
Nutze eine serverseitige Technik.
Wenn Javascript mit _dieser_ sprechen soll, lautet das Stichwort HTTP-Request.
gruß,
wahsaga
Das Javascript nicht mit der Datenbank arbeitet, ist mir bewusst.
Die Datenbankabfragen habe ich auch alle mit PHP gemacht und die Variablen an Javascript übergeben.
Mir geht es also nicht darum, dass Javascript die Daten aus der Datenbank holt bzw. von PHP übergeben bekommt.
Das ist schon alles passiert.
Ich habe nun eine Tabelle mit Ortsangaben und wenn ich nun auf ein bestimmten Ort drücke, soll dieser als Link dienen und auch an das POPUp Fenster übergeben werden.
hi,
Ich habe nun eine Tabelle mit Ortsangaben und wenn ich nun auf ein bestimmten Ort drücke, soll dieser als Link dienen und auch an das POPUp Fenster übergeben werden.
Und wo genau liegt jetzt das Problem?
gruß,
wahsaga
Und wo genau liegt jetzt das Problem?
Das Problem liegt darin, dass die Orstangabe in einer PHP Variable abgerufen wird und dort steht.
Ich weiss nur nicht so recht, wie ich es nun hinbekomme, dass diese Variable als Linkfeld für mein Javascriptteil "dienen" kann.
Dort soll also nicht linktext stehen, sondern immer der Ort, der aus der Datenbank abgerufen wird.
hi,
Dort soll also nicht linktext stehen, sondern immer der Ort, der aus der Datenbank abgerufen wird.
Wo "dort"? Beziehst du dich immer noch auf das folgende Codefragment?
<a href="javascript:oeffnefenster('api_popup.php');">Linktext</a>
Dann bringe deinem PHP-Script bei, dort wo Linktext steht, stattdessen den Inhalt der Variablen xy auszugeben.
gruß,
wahsaga