Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Java/Javascript Problem, wie an Variable kommen?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Nullpointer
PostRank 10
PostRank 10
Beiträge: 4790
Registriert: 22.04.2005, 19:14
Wohnort: West Berlin

Beitrag von Nullpointer » 23.04.2009, 07:28

@JohnBi ich würde es nicht schreiben, wenn es sich mittelfristig nicht wirklich lohnen würde: Schau die eine Lib wie JQuery oder Prototype an. Fang bei Deinen konkreten Problemen an, da findest Du gute Tutorials zu. Du wirst sehen, dass Du damit deutlich weniger Code selbst schreiben muß.t

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 23.04.2009, 07:31

Wie gesagt ich nehm doch den Code von dem Typen, nimm nen absenden Button und 2 hidden Felder die die 2. Variablen enthalten und dann klicken die auf Absenden und dann werden die 2 Variablen in ne DB geschrieben, ich will nicht das Rad neu erfinden, sondern einfach nur diese 2 Variablen übergeben.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

t-rex
PostRank 7
PostRank 7
Beiträge: 585
Registriert: 15.03.2004, 14:00

Beitrag von t-rex » 23.04.2009, 07:51

Ja dann,

Hab das mal schnell runtergetippt aber nicht getestet. Bau es einfach mal bei dir ein und dann schauä mä mol.

Das hier in einen Javascripttag im Kopfteil packen.

Code: Alles auswählen

function copylatlon() {
  var wert = document.getElementById('latlon');
  var werte = wert.split(',');
  document.getElementById('lat').value = werte[0];
  document.getElementById('lon').value = werte[1];
}
Dein Formular um das onsubmit Attribut (wie hier angezeigt) erweitern.

Code: Alles auswählen

<form name='submit' action='index.php?a=edit&e=geo' method='post' onsubmit="copylatlon&#40;&#41;; return false;">
Wenn ich es richtig vorgegeben habe und du richtig umsetzt, dann werden beim Drücken des Submitbuttons die Werte in die 2 Formularfelder eingetragen und das Formular wird dann abgesendet.

Du kannst die Textfelder natürlich auch durch Hiddenfelder ersetzen. Ich habe die Textfelder so übernommen, weil Du da ja schon eine ID vergeben hattest.

So mach mal und sag Bescheid.

Sonnige Grüsse
HaPe
Keiner weiss wass ich tue, aber alle wissen wie ich es besser machen kann
save the bookmark - logocreatr - backgrounds - templatr- PPC Themes

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 23.04.2009, 08:41

danke ich hab das mal getestet und ich hab das mal auf GET gestellt damit ich sehen kann ob die Daten gesendet werden, leider sendet er nichts..

Ich hab hier mal den Code aus der PHP Datei, den kannst du per Copy und Paste in ne php Datei einfügen, ich weiss nicht warum die Daten nicht ankommen.

Code: Alles auswählen

<?
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"
    \"http&#58;//www.w3.org/TR/html4/strict.dtd\">
<html>
<head>
<title>Get Lat Lon - find the latitude and longitude of a point on a map</title>
<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">
<style type=\"text/css\">
body &#123;
    margin&#58; 0;
    margin-bottom&#58; 3em;
    padding&#58; 0;
    font-family&#58; \"Gill sans\", sans-serif;
    background-color&#58; #fff;
    color&#58; #000;
&#125;
div#hd &#123;
    text-align&#58; center;
    border-bottom&#58; 2px solid black;
&#125;
div#hd h1 &#123;
    margin-bottom&#58; 0;
    font-size&#58; 1.5em;
&#125;
div#ft &#123;
    border-top&#58; 2px solid black;
&#125;
div#ft p &#123;
    width&#58; 500px;
    margin&#58; 1em auto;
&#125;
p#builtby &#123;
    font-size&#58; 0.8em;
    text-align&#58; right;
    color&#58; #666;
&#125;
div#bd &#123;
    position&#58; relative;
&#125;
div#gmap &#123;
    width&#58; 550px;
    height&#58; 400px; /* If you change this don't forget to change the crosshair position to match */
&#125;
div#crosshair &#123;
    position&#58; absolute;
    top&#58; 192px;
    height&#58; 19px;
    width&#58; 19px;
    left&#58; 50%;
    margin-left&#58; -8px;
    display&#58; block;
    background&#58; url&#40;crosshair.gif&#41;;
    background-position&#58; center center;
    background-repeat&#58; no-repeat;
&#125;
</style>
<script src=\"http&#58;//www.google.com/jsapi?key=&#91;API-KEY&#93;\" type=\"text/javascript\">
</script>
<script type=\"text/javascript\">
google.load&#40;'maps', '2'&#41;; // Load version 2 of the Maps API

function timezoneLoaded&#40;obj&#41; &#123;
    var timezone = obj.timezoneId;
    if &#40;!timezone&#41; &#123;
        return;
    &#125;
    document.getElementById&#40;'timezone'&#41;.innerHTML = timezone;
    document.getElementById&#40;'timezonep'&#41;.style.display = 'block';
    // Find out what time it is there
    var s = document.createElement&#40;'script'&#41;;
    s.src = \"http&#58;//json-time.appspot.com/time.json?callback=timeLoaded&tz=\" + timezone;
    s.type = 'text/javascript';
    document.getElementsByTagName&#40;'head'&#41;&#91;0&#93;.appendChild&#40;s&#41;;
&#125;

function timeLoaded&#40;obj&#41; &#123;
    if &#40;obj.datetime&#41; &#123;
        document.getElementById&#40;'datetime'&#41;.innerHTML = obj.datetime;
        document.getElementById&#40;'datetimep'&#41;.style.display = 'block';        
    &#125;
&#125;

function showMap&#40;&#41; &#123;
    window.gmap = new google.maps.Map2&#40;document.getElementById&#40;'gmap'&#41;&#41;;
    gmap.addControl&#40;new google.maps.LargeMapControl&#40;&#41;&#41;;
    gmap.addControl&#40;new google.maps.MapTypeControl&#40;&#41;&#41;;
    gmap.enableContinuousZoom&#40;&#41;;
    gmap.enableScrollWheelZoom&#40;&#41;;
    var timer = null;
    
    google.maps.Event.addListener&#40;gmap, \"move\", function&#40;&#41; &#123;
        var center = gmap.getCenter&#40;&#41;;
        document.getElementById&#40;\"latlon\"&#41;.innerHTML = center.toString&#40;&#41;;
    
        // Wait a second, then figure out the timezone
        if &#40;timer&#41; &#123;
            clearTimeout&#40;timer&#41;;
            timer = null;
        &#125;
        timer = setTimeout&#40;function&#40;&#41; &#123;
            document.getElementById&#40;'timezonep'&#41;.style.display = 'none';
            document.getElementById&#40;'datetimep'&#41;.style.display = 'none';
            // Look up the timezone using geonames
            var s = document.createElement&#40;'script'&#41;;
            s.type = 'text/javascript';
            s.src = \"http&#58;//ws.geonames.org/timezoneJSON?lat=\" + center.lat&#40;&#41; +
                \"&lng=\" + center.lng&#40;&#41; + \"&callback=timezoneLoaded\";
            document.getElementsByTagName&#40;\"head\"&#41;&#91;0&#93;.appendChild&#40;s&#41;;
        &#125;, 1500&#41;;
        
    &#125;&#41;;
    google.maps.Event.addListener&#40;gmap, \"zoomend\", function&#40;oldZoom, newZoom&#41; &#123;
        document.getElementById&#40;\"zoom\"&#41;.innerHTML = newZoom;
    &#125;&#41;;
    google.maps.Event.addDomListener&#40;document.getElementById&#40;'crosshair'&#41;,
        'dblclick', function&#40;&#41; &#123;
            gmap.zoomIn&#40;&#41;;
        &#125;
    &#41;;
    
    // Default view of the world
    gmap.setCenter&#40;
        new google.maps.LatLng&#40;43.834526782236814, -37.265625&#41;, 5
    &#41;;
    

    /* If we have a best-guess for the user's location based on their IP, 
       show a \"zoom to my location\" link */
    if &#40;google.loader.ClientLocation&#41; &#123;
        var link = document.createElement&#40;'a'&#41;;
        link.onclick = function&#40;&#41; &#123;
            gmap.setCenter&#40;
                new google.maps.LatLng&#40;
                    google.loader.ClientLocation.latitude,
                    google.loader.ClientLocation.longitude
                &#41;, 8
            &#41;;
            return false;
        &#125;
        link.href = '#'
        link.appendChild&#40;
            document.createTextNode&#40;'Zoom to my location &#40;by IP&#41;'&#41;
        &#41;;
        var form = document.getElementById&#40;'geocodeForm'&#41;;
        var p = form.getElementsByTagName&#40;'p'&#41;&#91;0&#93;;
        p.appendChild&#40;link&#41;;
    &#125;
    
    // Set up Geocoder
    window.geocoder = new google.maps.ClientGeocoder&#40;&#41;;
    
    // If query string was provided, geocode it
    var bits = window.location.href.split&#40;'?'&#41;;
    if &#40;bits&#91;1&#93;&#41; &#123;
        var location = decodeURI&#40;bits&#91;1&#93;&#41;;
        document.getElementById&#40;'geocodeInput'&#41;.value = location;
        geocode&#40;location&#41;;
    &#125;
    
    // Set up the form
    var geocodeForm = document.getElementById&#40;'geocodeForm'&#41;;
    geocodeForm.onsubmit = function&#40;&#41; &#123;
        geocode&#40;document.getElementById&#40;'geocodeInput'&#41;.value&#41;;
        return false;
    &#125;
&#125;

var accuracyToZoomLevel = &#91;
    1,  // 0 - Unknown location
    5,  // 1 - Country
    6,  // 2 - Region &#40;state, province, prefecture, etc.&#41;
    8,  // 3 - Sub-region &#40;county, municipality, etc.&#41;
    11, // 4 - Town &#40;city, village&#41;
    13, // 5 - Post code &#40;zip code&#41;
    15, // 6 - Street
    16, // 7 - Intersection
    17 // 8 - Address
&#93;;

function geocodeComplete&#40;result&#41; &#123;
    if &#40;result.Status.code != 200&#41; &#123;
        alert&#40;'Could not geocode \"' + result.name + '\"'&#41;;
        return;
    &#125;
    var placemark = result.Placemark&#91;0&#93;; // Only use first result
    var accuracy = placemark.AddressDetails.Accuracy;
    var zoomLevel = accuracyToZoomLevel&#91;accuracy&#93; || 1;
    var lon = placemark.Point.coordinates&#91;0&#93;;
    var lat = placemark.Point.coordinates&#91;1&#93;;
    var centreMarker = null; var centreIcon=new GIcon&#40;&#41;;centreIcon.image=\"/crosshair.gif\";centreIcon.shadow=\"\";centreIcon.iconSize=new GSize&#40;17, 17&#41;;centreIcon.shadowSize=new GSize&#40;0,0&#41;;centreIcon.iconAnchor=new GPoint&#40;9,9&#41;;centreIcon.infoWindowAnchor=new GPoint&#40;5,1&#41;;
    gmap.setCenter&#40;new google.maps.LatLng&#40;lat, lon&#41;, zoomLevel&#41;;
&#125;

function geocode&#40;location&#41; &#123;
    geocoder.getLocations&#40;location, geocodeComplete&#41;;
&#125;

function copylatlon&#40;&#41; &#123; 
  var wert = document.getElementById&#40;'latlon'&#41;; 
  var werte = wert.split&#40;','&#41;; 
  document.getElementById&#40;'lat'&#41;.value = werte&#91;0&#93;; 
  document.getElementById&#40;'lon'&#41;.value = werte&#91;1&#93;; 
&#125; 

google.setOnLoadCallback&#40;showMap&#41;;
</script>
</head>
<body>
    <div id=\"hd\">


    </div>
    <div id=\"bd\">
        <div id=\"gmap\"></div>
        <div id=\"crosshair\"></div>
    </div>

    <div id=\"ft\"align=LEFT>
        Latitude, Longitude&#58; <strong><span id=\"latlon\"></span></strong><br>
        Google Maps zoom level&#58; <span id=\"zoom\"></span><br>
    </div>

<form name='submit' action='geo.php' method='get' onsubmit=\"copylatlon&#40;&#41;; return false;\">
<input type='hidden' id='lat' name='lat'>
<input type='hidden' id='lon' name='lon'>
<input type='submit' value='Submit' name='submit'>
</form>
</body>
</html>";
?>
Und irgendwie steht dann oben in der Adresszeile

Code: Alles auswählen

geo.php?lat=&lon=&submit=Submit
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

gnark
PostRank 8
PostRank 8
Beiträge: 920
Registriert: 23.01.2009, 15:12

Beitrag von gnark » 23.04.2009, 08:54

Wärs nicht schlauer den code gleich in die Funktion function geocodeComplete(result) zu schreiben?

also:

Code: Alles auswählen

function geocodeComplete&#40;result&#41; &#123;
    if &#40;result.Status.code != 200&#41; &#123;
        alert&#40;'Could not geocode \"' + result.name + '\"'&#41;;
        return;
    &#125;
    var placemark = result.Placemark&#91;0&#93;; // Only use first result
    var accuracy = placemark.AddressDetails.Accuracy;
    var zoomLevel = accuracyToZoomLevel&#91;accuracy&#93; || 1;
    var lon = placemark.Point.coordinates&#91;0&#93;;
    var lat = placemark.Point.coordinates&#91;1&#93;;
// hier&#58;
  document.getElementById&#40;'lat'&#41;.value = lat;
  document.getElementById&#40;'lon'&#41;.value = lon;

    var centreMarker = null; var centreIcon=new GIcon&#40;&#41;;centreIcon.image=\"/crosshair.gif\";centreIcon.shadow=\"\";centreIcon.iconSize=new GSize&#40;17, 17&#41;;centreIcon.shadowSize=new GSize&#40;0,0&#41;;centreIcon.iconAnchor=new GPoint&#40;9,9&#41;;centreIcon.infoWindowAnchor=new GPoint&#40;5,1&#41;;
    gmap.setCenter&#40;new google.maps.LatLng&#40;lat, lon&#41;, zoomLevel&#41;;
&#125; 
dann könnte man einfach ganz normal abschicken.
Ausserdem kannst du direkt beim testen sehen, ob der code in den Feldern steht (solange sie nicht hidden sind ;))

Hab mir jetzt allerdings nicht alles so genau angesehen ... also wieder keine garantie :)
https://das-dass.de ... übrigens: es heisst sitewide mit "t"

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 23.04.2009, 09:13

das dachte ich mir anfangs auch, das hatte ich auch schon probiert, das Problem ist das es sich hier um eine ständige aktualisierung handelt immer wenn die Map bewegt wird, und der Punkt den du markiert hast über ein Submit-Button ausgelöst wird den ich ja nicht nutze...

ich hab mir mal wert ausgeben lassen und da kommt irgendwas mit [object] raus, deswegen funktioniert wohl auch die split(',') nicht, weil da kein , vorkommt ...
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

t-rex
PostRank 7
PostRank 7
Beiträge: 585
Registriert: 15.03.2004, 14:00

Beitrag von t-rex » 23.04.2009, 09:42

Was mir gerade auffällt wegen "Object"

Das hier

Code: Alles auswählen

var wert = document.getElementById&#40;'latlon'&#41;; 
Muss heissen

Code: Alles auswählen

var wert = document.getElementById&#40;'latlon'&#41;,innerHTML; 
Ist jetzt aber nur ein Schnellschuss.

Wenn ich vom Sonnentanken zurückkomme und es sich noch nichts getan hat schau ich noch einmal drüber.

Sonnige Grüsse
HaPe
Keiner weiss wass ich tue, aber alle wissen wie ich es besser machen kann
save the bookmark - logocreatr - backgrounds - templatr- PPC Themes

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 23.04.2009, 10:00

ok habe ich ersetzt und nun funktioniert der Submit button nicht mehr, aber er füllt die beiden Felder aus, aber da sind noch die Klammern ....

Feld1 (45.55252525134013
Feld1 -5.5810546875)

wie krieg ich die Klammern weg und warum funktioniert das Absenden Button nicht...

Danke nochmals, bei mir scheint keine Sonne ich werde wohl weiter probieren und schauen was da nicht stimmt.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 23.04.2009, 10:12

ok, das habe ich nun auch geschafft, nun muss das nurnoch abgeschickt werden, weiss einer warum das nicht funktioniert?

Beim knopfdruck werden die Felder befüllt und dann passiert nichts...

Code: Alles auswählen

function copylatlon&#40;&#41; &#123; 
  var wert = document.getElementById&#40;'latlon'&#41;.innerHTML; 
  var werte = wert.split&#40;','&#41;; 
  lat_cut = werte&#91;0&#93;.substring&#40;1,werte&#91;0&#93;.length&#41;;
  lon_cut = werte&#91;1&#93;.substring&#40;0,werte&#91;1&#93;.length-1&#41;;
  document.getElementById&#40;'lat'&#41;.value = lat_cut; 
  document.getElementById&#40;'lon'&#41;.value = lon_cut; 
&#125;
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

t-rex
PostRank 7
PostRank 7
Beiträge: 585
Registriert: 15.03.2004, 14:00

Beitrag von t-rex » 23.04.2009, 10:40

Ist noch ein bisschen zu frisch da oben.
ok, das habe ich nun auch geschafft, nun muss das nurnoch abgeschickt werden, weiss einer warum das nicht funktioniert?
Beim knopfdruck werden die Felder befüllt und dann passiert nichts...
Eigentlich war das als kleine Denksportaufgabe gedacht ;-)

...
...
...
...
...
...
...
...
...
...

Wenn Du return false; im Formular gegen return true; austauschst gehts :-)

Sonnige Grüsse
HaPe
Keiner weiss wass ich tue, aber alle wissen wie ich es besser machen kann
save the bookmark - logocreatr - backgrounds - templatr- PPC Themes

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 23.04.2009, 10:43

Danke, hab dann wohl deine Denkaufgabe bestanden, hab es nämlich direkt gemacht ...

Danke nochmals t-rex, hast mir wirklich sehr geholfen...
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

t-rex
PostRank 7
PostRank 7
Beiträge: 585
Registriert: 15.03.2004, 14:00

Beitrag von t-rex » 23.04.2009, 10:50

Freut mich wenn ich helfen konnte :-)
Keiner weiss wass ich tue, aber alle wissen wie ich es besser machen kann
save the bookmark - logocreatr - backgrounds - templatr- PPC Themes

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag