Seite 1 von 2

Java/Javascript Problem, wie an Variable kommen?

Verfasst: 22.04.2009, 09:06
von JohnBi
Hi, ich bins nochmal, bis jetzt habe ich dank eurer Hilfe wirklich jedes meiner Programmierprobleme in den Griff bekommen, doch nun bin ich wieder total am Ende mit meinem Latein...

https://www.getlatlon.com/

Ich habe den Quellcode von dieser Seite genommen, einfach per Copy und Paste und den API-Key ersetzen, auch wenn man diesen nicht ersetzt funktioniert es wunderbar, das ist ja nicht das Problem, anscheinend hat der gute Herr auch nicht dagegen und das funktioniert auch alles super, weil läuft ja alles über JS und deswegen kann man schön Copy und Paste und am Code rumwerkeln...

Am Ende der Seite wird Latitude und die Longitude ausgegeben, je nachdem wie man sich auf der Karte bewegt, nun würde ich gerne diese übermitteln sei es mit POST oder GET über die Browserzeile, ich hab schon alles probiert was mir eingefallen ist ...

weiss jemand wie ich das anstelle? Danke

Verfasst:
von

Verfasst: 22.04.2009, 09:28
von t-rex
Hi,

da gibt es tausende Lösungsansätze ;-)

setze irgendwo ein Formular mit einem hiddenfeld. Immer, wenn das Spantag aktualisiert wird, wird auch das Hiddenfeld aktualisiert. Abschiessen kannst du das Formular dann ja wann Du willst. Die Ergebnisseite kannst Du dann in einem iframe anzeigen lassen.

Du musst aber eigentlich gar kein Hiddenfeld nehmen. Du kannst auch kurz vor dem Abschiessen über die ID das spantag abfragen und den Wert dann in das Hiddenfeld eintragen.

Eine ganz einfache Variante ist das Spantag über die ID auslesen. Per javascript ein Image erstellen. An die Url zu dem Image hängst du dann einen Parameter mit diesem vorher ausgelesenen Wert an.

Kannst du damit schon was anfangen?

Sonnige Grüsse
HaPe

Verfasst: 22.04.2009, 09:40
von JohnBi
hallo t-rex, erstmal vielen Dank für deine Antwort, leider kann ich damit nichts anfangen.

am liebsten wäre mir, wenn der Inhalt von Spantag in 2 Input Textfelder geschrieben werden würde, nur weiss ich nicht wie ich dieses Spantag auslese...

wie komm ich an diese beiden variablen ran? Ich hab schon einiges probiert aber irgendwie krieg ich die nicht...

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 22.04.2009, 09:58
von t-rex
in purem Javascript geht das so

Code: Alles auswählen

var wert = document.getElementById('latlon');
var werte = wert.split(',');
alert(werte[0]);
alert(werte[1]);

Verfasst: 22.04.2009, 10:03
von JohnBi
danke vielmals, und diese kann ich dann per hidden textfelder per POST an ein Script übergeben?

so?

Code: Alles auswählen

<input type='hidden' name='lat' value='werte&#91;0&#93;'>
<input type='hidden' name='lon' value='werte&#91;1&#93;'>
oder wie übergebe ich die?

Verfasst: 22.04.2009, 10:26
von gnark
ich kann dir zwar bei deinem Problem nicht helfen, wollte dich aber darauf aufmerksam machen, dass Java nicht das gleiche wie JavaScript ist.

Sorry fürs Klugscheissen, aber das sollte man zumindest wissen, wenn man damit arbeitet ;)

Verfasst: 22.04.2009, 11:30
von chrizz
Ich meine das es mit diesem Aufruf geht:
document.GetElementByID["IDinputfeld1"].value = wert[0];

dein Inputfeld braucht dann allerdings auch eine eindeutige ID die du mit id="deineID" vergibst.
Identisch funktioniert es dann natürlich für das 2. Inputfeld.

Verfasst: 22.04.2009, 11:32
von JohnBi
Danke chrizz und t-rex, ich schau mir das mal nachher an, sollte ich das nicht hinbekommen oder fehler auftreten, melde ich mich nochmal...

Verfasst: 22.04.2009, 11:56
von gnark
der code von chrizz schickt dir noch immer keine Daten.

Ich denke was du brauchst ist: https://de.wikipedia.org/wiki/XMLHttpRequest
Es soll ja keine neue Seite aufgerufen werden, oder?
Das kann die Daten im hintergrund schicken.

PS: auch wenns dich nervt: https://www.java-ist-nicht-javascript.de/ ;)

Verfasst: 22.04.2009, 12:31
von chrizz
ja, ungenau gelesen. Das Script so schreibt die Variablen erstmal nur in das Input Feld. Das Formular muss dann natürlich noch abgesendet werden. Wie gnark sagt: Das sollte dann wohl mit Ajax passieren
Cheers

Verfasst: 22.04.2009, 12:46
von JohnBi
Ich kann kein Ajax, ich werde mal schauen wie ich das realisiere, vielen Dank für eure Hilfe auch dir gnark das du den Thread immer schön gepushed hast ;)

Verfasst: 22.04.2009, 13:09
von gnark
ajax ist auch nur JavaScript.

Im Prinzip nimmst du diesen code:
t-rex hat geschrieben:in purem Javascript geht das so

Code: Alles auswählen

var wert = document.getElementById&#40;'latlon'&#41;;
var werte = wert.split&#40;','&#41;;
alert&#40;werte&#91;0&#93;&#41;;
alert&#40;werte&#91;1&#93;&#41;;
und den code von meinem wikipedia-link
und änderst dort diese Zeile:

xmlHttp.open('GET', 'beispiel.xml', true);

in sowas wie:

xmlHttp.open('POST', 'deineURL.php?lan='+werte[0]+"&lat="+werte[1], true);

allerdings ohne gewähr ... bin in JS auch noch nicht so fit
musst schon auch selber ein bisschen was tun ;)

Verfasst: 22.04.2009, 13:12
von JohnBi
jo, dank dir, werd mal schauen, vielleicht schick ich das auch einfach auf ne neue Seite und dann hab ich den ganzen Stress nicht, danke vielmals...

Verfasst: 22.04.2009, 22:17
von t-rex
Sodele, es kann weiter gehen.

Was möchtest Du genau machen?
- Du möchtest die Werte aus dem Spantag weiter verwerten. Soweit klar
- Auslesen und weiter geben ist kein Problem. Gibt es tausend Lösungen.
- Wie soll das Senden ausgelöst werden?
+ Wird der User etwas klicken müssen
+ Soll es aufgrund eines Ereignisses, wie zum Beispiel verlassen der Seite ausgelöst werden?
+ Soll es stetig aufgrund der Änderung des Spantags geschehen?
- Was soll der User davon mitbekommen? Was soll ihm angezeigt werden?
+ Eine richtige Ergebnisseite? "Danke die Datenwurden gespeichert"
+ Irgendwo ein kurzer Hinweistext ohne die Seite neuladen?
+ Komplett versteckt? User sieht gar nichts.

Beantworte einfach die Fragen, und ich schau mal, ob ich eine geeignete Lösung zusammen bekomme.

Sonnige Grüsse
HaPe

Verfasst: 23.04.2009, 07:15
von JohnBi
Erstmal vielen Dank t-rex, das du dich meinem Problem annimmst und deine Zeit opferst um mir zu helfen, das weiss ich sehr zu schätzen...
t-rex hat geschrieben:Sodele, es kann weiter gehen.
Was möchtest Du genau machen?
- Du möchtest die Werte aus dem Spantag weiter verwerten. Soweit klar
- Auslesen und weiter geben ist kein Problem. Gibt es tausend Lösungen.
- Wie soll das Senden ausgelöst werden?
Per Button, wie bei antworten hier im Forum.
+ Wird der User etwas klicken müssen
Ja, er muss ein Button klicken, nachdem er seine Position auf der Map markiert hat.
+ Soll es aufgrund eines Ereignisses, wie zum Beispiel verlassen der Seite ausgelöst werden?
Das ist nicht so wichtig, spielt also keine Rolle
+ Soll es stetig aufgrund der Änderung des Spantags geschehen?
Ja, damit auch die letzten aktualisierten Map Daten übermittelt werden können.
- Was soll der User davon mitbekommen? Was soll ihm angezeigt werden?
nichts, der User soll einfach nur die Karte auf seine Position schieben und absenden klicken, er soll garnichts sehen von den Daten...
+ Eine richtige Ergebnisseite? "Danke die Datenwurden gespeichert"
Das habe ich schon realisiert und zeige ich dir gleich unten.
+ Irgendwo ein kurzer Hinweistext ohne die Seite neuladen?
Ne, so einfach wie möglich, schau mal unten den Code den ich schon habe
+ Komplett versteckt? User sieht gar nichts.
ne, der User soll schon sehen das was aktualisiert wurde.

Beantworte einfach die Fragen, und ich schau mal, ob ich eine geeignete Lösung zusammen bekomme.
Sonnige Grüsse
HaPe[/quote]

das ist der Code den ich schon habe und den ich im Moment benutze, der User muss im Moment die Daten per Copy und Paste eintragen...

Code: Alles auswählen

if&#40;$a=='edit' AND $e=='geo' AND $s2==1&#41;
&#123;
$sql="UPDATE kunde lat="$lat",lon="$lon" WHERE id='$struct_id'";
mysql_query&#40;$sql&#41; or die &#40;'Fehler!<br />$sql&#58; '.$sql.'<br />'.mysql_error&#40;&#41;&#41;;
echo "<table width=550 cellpadding=0 cellspacing=0><tr><td>";
echo "GEO aktualisiert<br>";
echo "<a href='weiter.php'><u><b>continua...</b></u></a>";
echo "</td></tr></table>";
&#125;
if&#40;$a=='edit' AND $e=='geo' AND $s2==''&#41;
&#123;
echo "<table width=550 cellpadding=0 cellspacing=0><tr><td>";
echo "</td></tr>";
echo "<tr><td height=5></td></tr>";
echo "<TR><TD colspan=2 bgcolor='#99ccff' height=1></TD></tr>";
echo "<tr><td height=5></td></tr>";
echo "</table>";

echo "<table width=550 cellpadding=0 cellspacing=0><tr><td>";
echo "<form name='submit' action='index.php?a=edit&e=geo' method='post' >";

echo "<table width=550 cellpadding=0 cellspacing=0>";
echo "<tr><td width=50>Latitude&#58;</td><td><input type='text' style='width&#58;140px' id="lat" maxlength=30 name="lat" value="$kunden_lat"/></td></tr>";
echo "<tr><td width=50>Longitude&#58;</td><td><input type='text' style='width&#58;140px' id="lon" maxlength=30 name="lon" value="$kunden_lon"/></td></tr>";
echo "</table>";

echo "</td></tr></table>";
echo "<table width=550 cellpadding=0 cellspacing=0><tr><td>";
echo "<input type='hidden' value='1' name='s2'>"; 
echo "<input type='hidden' value='$kunden_id' name='kunden_id'>";
echo "<input type='hidden' value="geo" name='e'>"; 
echo "<input type='submit' Style='WIDTH&#58;180;text-align&#58;center' value="absenden" name='submit'>";
echo "</form>";
echo "</td></tr></table>";
&#125;