elke0807: Übergabe von Text an Java Script aus php

Hallo,
ich habe leider nur Grundkenntnisse in java script und habe jetzt schon einige Tage vergeblich eine Lösung gesucht - vielleicht könnt Ihr mir helfen.

Das Problem:
Ich möchte aus php mit Java Script ein kleines Fenster mit einer google api Karte öffnen, leider kommt die Variable ort nicht richtig in Java Script an.

Hier der Aufruf in der php-Datei

echo "<br><a href="javascript:aachen('$ort')"><b> *** Karte *** </b></a>";

hier das Java Script im header:

echo "<script type="text/javascript">\n";
    echo "<!--\n";
    echo "function aachen(ort){\n";
    echo "fenster="aachen.html"\n";
    echo "window.open(fenster, "Zweitfenster", "width=520, height=420, left=322,top=210,scrollbars=no")\n";
    echo "}\n";
    echo "//-->\n";
    echo "</SCRIPT>\n\n";

Wenn ich mit der Maus auf dem Link Karte bin, zeigt er mir auch die Adresse an.

Und nun hier die Datei, die die Karte aufrufen soll:

<script type="text/javascript">
    //<![CDATA[

var map = null;
    var geocoder = null;

var address = ort;

function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(50.780313, 6.080267), 13);
        geocoder = new GClientGeocoder();

showAddress (address);
             }
    }

function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 13);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              //Kontrolle
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
              marker.openInfoWindowHtml(address);

}
          }
        );
      }
    }
    //]]>
    </script>
  </head>
  <body topmargin="0" leftmargin="0" bgcolor="#cccccc" onload="load()" onunload="GUnload()">
    <div id="map" style="width: 500px; height: 400px"></div>

</body>

Schreibe ich statt Adresse = ort dort eine Adresse hin, klappt das mit der Karte, so aber sagt er mir ort ist undefiniert.

Ich habe aber leider keine Ahnung wie ich das Ändern soll.
Vielleicht liegt es auch am Komma in der Adresse, aber mit Leerzeichen klappt es auch nicht.
Bestimmt hätte ich das ganze auch eleganter formulieren können, aber ich bin froh, wenn es funktioniert. War für mich schon schwierig genug bis hierhin.

Was das Programm soll?
Beim unten stehenden Link soll die Karte in eine google map Karte getauscht werden.

Könnt Ihr mir helfen????

  1. hi,

    Ich möchte aus php mit Java Script ein kleines Fenster mit einer google api Karte öffnen, leider kommt die Variable ort nicht richtig in Java Script an.

    Und "nicht richtig" heisst?

    Hier der Aufruf in der php-Datei

    echo "<br><a href="javascript:aachen('$ort')"><b> *** Karte *** </b></a>";

    Wenn du ein clientseitiges Problem diskutieren willst, dann poste bitte _immer_ den Code so, wie ihn der Client erhält. Serverseitiger Code interessiert dabei erst mal ü-ber-haupt nicht.

    gruß,
    wahsaga

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

      Erst einmal danke für die schnelle Antwort.

      Und "nicht richtig" heisst?

      ehrlich gesagt, weiß ich nicht, ob sie überhaupt im Programm ankommt. Fürchte eher nicht.

      Wenn ich das Java Script aufrufe erscheint in der Statuszeile
      z.B: javascript:aachen('Pontstr.121,52072 Aachen')

      aber javascript sagt beim Öffnen des Fensters "undefined not found.

      Welchen Code brauchst Du noch? Alles was ich habe, habe ich oben doch hingeschrieben. Ich verstehe nicht, was Du meinst.

      Gruß Elke

      1. hi,

        Welchen Code brauchst Du noch?

        Das Problem liegt in dem Code, den dein Browser vom Server erhält.

        Alles was ich habe, habe ich oben doch hingeschrieben.

        Nein, da hast du nur deinen PHP-Code gezeigt.
        Welches Ergebnis dieser liefert, kann niemand hier sagen.

        Ich verstehe nicht, was Du meinst.

        Lasse dir in deinem Browser den Quelltext der HTML-Seite anzeigen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. von der php-Seite, die das Script aufruft und die Variable übergibt
          oder von der html-Seite mit dem Java-Script?

          1. hi,

            von der php-Seite, die das Script aufruft und die Variable übergibt
            oder von der html-Seite mit dem Java-Script?

            Wo tritt der Fehler denn auf ...?

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. ich vermute die Variable wird nicht richtig übergeben (Komma und Leerzeichen im Text),aber ich weiß auch nicht wie ich die Variable ort dann im Java Script verwenden kann. Vielleicht muss ich sie da anders definieren oder irgendwas sonst machen.

              Ich gebe mal beide Quelltexte an:

              Hier die Php-Seite (gekürzt..)

              ...
              </SCRIPT>
              <script type="text/javascript">
              <!--
              function aachen(ort){
              fenster="aachen.html"
              window.open(fenster, "Zweitfenster", "width=520, height=420, left=322,top=210,scrollbars=no")
              }
              //-->
              </SCRIPT>
              .....

              ......

              <a href="javascript:aachen('Pontstrasse 101-105, 52062 Aachen')"><b> *** Karte *** </b></a>
              ....

              Und hier der Quelltext von der html-Seite mit der Karte:

              <!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>Google Maps API Example - Geocoding API</title>
                  <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAA69WN51BLiq2A85qvT9E7GBRtMCCS5qRHSLLtMJemc1p278raFRSRxnRlO-4Vse0AbrvIOvnm87Je-Q" type="text/javascript"></script>
                  <script type="text/javascript">
                  //<![CDATA[

              var map = null;
                  var geocoder = null;

              var address = ort;

              function load() {
                    if (GBrowserIsCompatible()) {
                      map = new GMap2(document.getElementById("map"));
                      map.setCenter(new GLatLng(50.780313, 6.080267), 13);
                      geocoder = new GClientGeocoder();

              showAddress (address);
                           }
                  }

              function showAddress(address) {
                    if (geocoder) {
                      geocoder.getLatLng(
                        address,
                        function(point) {
                          if (!point) {
                            alert(address + " not found");
                          } else {
                            map.setCenter(point, 13);
                            var marker = new GMarker(point);
                            map.addOverlay(marker);
                            //Kontrolle
                 map.addControl(new GLargeMapControl());
                map.addControl(new GMapTypeControl());
                            marker.openInfoWindowHtml(address);

              }
                        }
                      );
                    }
                  }
                  //]]>
                  </script>
                </head>

              <body topmargin="0" leftmargin="0" bgcolor="#cccccc" onload="load()" onunload="GUnload()">
                  <div id="map" style="width: 500px; height: 400px"></div>

              </body>
              </html>

              Reicht das?

              Gruß Elke

              1. Hallo,

                ich habe eine Lösung gefunden: :-)  :-)  :-)

                Ich habe die HTML Datei als PhP-Datei gespeichert und habe die Variabel wie folgt definiert
                var address= "<?php echo "$address";?>" ;

                nun funktioniert es.
                Werde es jetzt von den alten Karten befreien und dann ist es beim unten stehenden Link zu sehen.
                Dann heißt es Adressen überprüfen.

                Danke für die Antworten

                Gruß Elke

  2. Hallo,

    ist dir aufgefallen, dass in der function aachen(ort), das Argument nicht benutzt wird.

      
    alert("Ort: "+ort)  
    
    

    wenn du so eine Kontrolle einfügst, sollte der Ort in der Funktion noch definiert sein.

    Aber er wird nicht an "aachen.html" weitergegeben.

    Und nun hier die Datei, die die Karte aufrufen soll:

    das ist wohl "aachen.html"

    var address = ort;

    Schreibe ich statt Adresse = ort dort eine Adresse hin, klappt das mit der Karte, so aber sagt er mir ort ist undefiniert.

    Stellt sich die Frage: kann man einer URL diesen Wert mitgeben?

    Gruß plan_B

    --
         *®*´¯`·.¸¸.·