Wie übernehme ich Wert in Datenbankfeld?
Marion T.
- javascript
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ä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
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
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
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.
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
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.
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
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
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
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.
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
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.
Moin!
Probier mal...
var marker = createMarker(point,'<div style="width:200px;">Baden-Baden (Weststadt)<br/><strong>Ackerweg</strong><br/><br />Lä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
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 ;-)
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.