chris: PopUp Fenster, Probleme mit Variablen übergabe

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&amp;v=2&amp;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

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. 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.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  3. 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?

    1. 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

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. 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.

        1. 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

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. 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.

            1. 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

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }