Marion T.: Wie übernehme ich Wert in Datenbankfeld?

Hallo,

habe mit Javascript Geolkoordinaten ermittelt, die ich gerne in ein Datenbankfeld übernehmen möchte.

Das Stück JS sieht so aus:

map.setCenter(point, 17);
              var marker = new GMarker(point);
              var marker = createMarker(point,'<div style="width:200px;">$st_ortgesamt<br/><strong>$st_strasse</strong><br/>$st_lage<br />L&auml;ngengrad: <strong>'+point.lng()+'</strong><br />Breitengrad: <strong>'+point.lat()+'</strong></div>')

map.addOverlay(marker);

Wie bekomme ich z.B. das 'point.lng()' in eine Variable in meinem perl-Template. Kenne mich leider nicht in JS aus.

Vielen Dank

Marion

  1. Moin!

    Wie bekomme ich z.B. das 'point.lng()' in eine Variable in meinem perl-Template. Kenne mich leider nicht in JS aus.

    Indem Du es z.B. per Formular an Dein Perl CGI Script sendest. Du packst den Wert also einfach in ein (hidden) <input> Deiner HTML Seite.

    -- Skeeve

    1. Hallo Skeeve,

      das verstehe ich eben nicht, da ich die Synatx in Javascript nicht kenne.
      Das JS innerhalb einer HTML/Perl-Seite bekommt - nach Auswahl einer Strasse aus einer Listenansicht - über eine Variable (Perl) den Strassennamen ( $st_strasse) und wirft als Ergebnis die Koordinaten aus (in einer JS-Variablen).

      Wie bekomme ich dieses JS-Variable nun in eine Perl-Variable (Skalar?)

      Gruss

      Marion

      1. Wie bekomme ich dieses JS-Variable nun in eine Perl-Variable (Skalar?)

        Gar nicht, du kannst Daten über die Formularfelder an Perl übergeben. JS und Perl wissen nichts voneinander.

        Struppi.

        --
        Javascript ist toll (Perl auch!)
      2. Moin!

        Das mußt Du, denke ich, schon etwas genauer erklären.

        Das JS innerhalb einer HTML/Perl-Seite bekommt - nach Auswahl einer Strasse aus einer Listenansicht

        Wo ist denn diese Listenansicht? Auf einer Webseite? Und wie kommt Perl da ins Spiel? Das ist ein CGI Script? Was macht das Perl mit der Seite? Baut es das auf?

        Vielleicht kann man sich das auch irgendwo mal ansehen?

        -- Skeeve

        1. Hallo,

          hier ist der Link zum Verwaltungsprogramm:

          http://www.ac-database.de/baseportal/bg_t/bg_p1108

          user: selfhtml
          passwort: test

          es erscheint eine Strassenliste -> Strasse auswählen -> Detailansicht -> bei Anklicken des Symbols auf der Karte generiert JS ein Window mit den Daten Strassendaten, wobei der Strassenname ein Datenbankfeld ist und die Koordinaten per JS aus der Google-Maps-API generiert werden.

          1. Moin!

            es erscheint eine Strassenliste -> Strasse auswählen -> Detailansicht -> bei Anklicken des Symbols auf der Karte generiert JS ein Window mit den Daten Strassendaten, wobei der Strassenname ein Datenbankfeld ist und die Koordinaten per JS aus der Google-Maps-API generiert werden.

            Jetzt müßtest Du die Daten per form submit an Dein Perl CGI script übertragen.

            Also einfach ein form auf der Seite unterbringen das <input> Elemente enthält und mit javascript die value Eigenschaft der Elemente auf die gewünschten Werte setzen.

            Anschließend noch einen form.submit() und Du hast die Daten.

            Wenn Du aber auf der Seite kein eigenes JS unterbringen kannst, hast Du leider so eine Chance.

            -- Skeeve

            1. Hallo Skeeve,

              danke für Deine Mühe, aber ich glaube, wir reden aneinander vorbei ;-)
              Die von Dir vorgeschlagene Vorgehensweise habe ich mir auch schon so gedacht. Auf der Seite ist ja bereits auch ein Form, da die Strassendaten ja dort auch geändert werden können, wie Du sehen kannst.
              Die Input-Felder für die Koordinaten sind auch in den meisten Fällen leer und es sihet im Code so aus:

              --- schipp ---
                  <fieldset style='float:left; width:50%; height:350px; margin-right:10px;'>
                  <h3 class='legend'>Strassendaten</h3>
                    <div><label>Ort</label>$select_st_ortgesamt</div>
                    <div><label>Strasse</label><input type="text" name="st_strasse=" size='40' value="$st_strasse" /></div>
                    <div><label>Sort</label><input type="text" name="st_strasse_sort=" size='40' value="$st_strasse_sort" /></div>
                    <div><label>Lage</label><textarea name="st_lage=" cols='39' rows='5'>$st_lage</textarea></div>
                    <div><label>Längengrad</label><input type="text"  name="st_geo_lng=" size='25' value="$st_geo_lng" /></div>
                    <div><label>Breitengrad</label><input type="text"  name="st_geo_lat=" size='25' value="$st_geo_lat" /></div>
                    <div><label>BB Strasse</label><input type="text"  name="st_BB_strasse=" size='40' value="$st_BB_strasse" /></div>
                    <div><label>BB Hausnummer</label><input type="text"  name="st_BB_hausnummer=" size='40' value="$st_BB_hausnummer" /></div>
                    <div><label>BB Gemarkung</label><input type="text"  name="st_BB_gemarkung=" size='40' value="$st_BB_gemarkung" /></div>
                    <div><label>BB Stadteil-Nr.</label><input type="text"  name="st_BB_stadtteil_nr=" size='40' value="$st_BB_stadtteil_nr" /></div>
                    <div><label>BB Suchquadrat</label><input type="text"  name="st_BB_suchquadrat=" size='40' value="$st_BB_suchquadrat" /></div>
                    <div><label>Google-Status</label>$select_st_google_status</div>
                  </fieldset>
              --- schnapp ---

              mir fehlt jetzt lediglich die Syntax, um den ermittelten Wert aus dem auf der gleichen Seite befindlichen JS hier einzubauen.

              Hoffe, ich habe mich jetzt einigermassen verständlich ausgedrückt ;-)

              Gruss

              Marion

              1. hi,

                mir fehlt jetzt lediglich die Syntax, um den ermittelten Wert aus dem auf der gleichen Seite befindlichen JS hier einzubauen.

                Dann schau dir http://de.selfhtml.org/javascript/objekte/elements.htm an.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
              2. danke für Deine Mühe, aber ich glaube, wir reden aneinander vorbei ;-)

                sieht so aus, die scheint nicht recht klar zu sein, dass JS und Perl nichts miteinander zu tun haben. JS weiß nicht von Perlvariabeln und umgekehrt.

                Es gibt natürlich Möglichkeiten Daten auszutauschen aber dazu müßte man wissen was du konkret willst.
                Wenn es dir darum geht eine mit JS ermittelten Wert and das CGI Skript zu übermittlen musst du diesen Wert in ein Formularfeld eintragen (dazu steht einiges in selfhtml) umgekehrt wenn du einen Perlwert an JS übergeben willst, musst du JS code ausgeben und dort den Wert hineinschreiben.

                Was du konkret willst ist mir aber noch nicht klar.

                Struppi.

                --
                Javascript ist toll (Perl auch!)
                1. Hallo Struppi,

                  kann Deine Aussage leider nicht nachvollziehen,

                  ich mache doch meine Plausibilitätsprüfungen von Formularen doch seit Jahren mit JS.
                  Du klammerst Dich da an Perl als CGI, das ganze Template schreibe ich in XHTML und Perl, mit Perl steuere ich die Datenbank und mache Berechnungen (Regex) etc., includiere weitere Perlscripte, wo ich sie brauche, z.B. Datumsroutinen.

                  Das es einen Weg gibt, haben wahsage und Skreeve unten beschrieben,
                  da arbeite ich jetzt gerade dran.

                  GHruss

                  Marion

                  1. ich mache doch meine Plausibilitätsprüfungen von Formularen doch seit Jahren mit JS.

                    eben, aber im Browser.

                    Du klammerst Dich da an Perl als CGI, das ganze Template schreibe ich in XHTML und Perl, mit Perl steuere ich die Datenbank und mache Berechnungen (Regex) etc., includiere weitere Perlscripte, wo ich sie brauche, z.B. Datumsroutinen.

                    Alles schön und gut, aber wo ist das Beispiel wo du eine JS Variabel mit einer Perl Variabel befüllst oder umgekehrt. Du klammerst dich an einer Verbindung zwischen Perl und Javascript, die gibt es aber nicht.

                    Das es einen Weg gibt, haben wahsage und Skreeve unten beschrieben,
                    da arbeite ich jetzt gerade dran.

                    Dort wird z.b. ein Weg beschrieben, wie du mit JS (im Browser) ein Formularfeld befüllst, das hatte ich bereits mehrfach erwähnt. So kommst du dann auf dem Client an einen Wert der übermittelt werden soll, der ist aber völlig unabhängig von JS.

                    Struppi.

                    --
                    Javascript ist toll (Perl auch!)
              3. Moin!

                Probier mal...

                  
                var marker = createMarker(point,'<div style="width:200px;">Baden-Baden (Weststadt)<br/><strong>Ackerweg</strong><br/><br />L&auml;ngengrad: <strong>'+point.lng()+'</strong><br />Breitengrad: <strong>'+point.lat()+'</strong></div>')  
                  
                document.forms[0].elements['st_geo_lng']= point.lng(); // <== das  
                document.forms[0].elements['st_geo_lat']= point.lat(); // <== und das  
                  
                map.addOverlay(marker);  
                
                

                -- Skeeve

                1. Danke Skeeve,

                  nachdem wahsaga mir den Linktipp gab, habe ich mir das mal angeschaut und auch in dioese Richtung gedacht.

                  Habe nun Deinen Vorschlag eingebaut, funktioniert leider nicht

                  Werde noch weiter probieren ;-)

                  1. Habe nun Deinen Vorschlag eingebaut, funktioniert leider nicht

                    Da völlig unklar ist, an welcher Stelle das JS aufgerufen wird, kann man dir keine zielgerichtete Antwort geben.
                    "Funktioniert nicht" ist auch kein besonders hilfreicher Hinweis.

                    Struppi.

                    --
                    Javascript ist toll (Perl auch!)