#1 2. Juli 2012 Zuletzt bearbeitet: 3. Juli 2012 UPDATED - 03.07 - Javascript an PHP hi, folgendes snipped hab ich gestestet und für mich minimiert Code: <!DOCTYPE html> <html> <body> <p id="demo">Click the button to get your coordinates:</p> <button onclick="getLocation()">Try It</button> <script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.watchPosition(showPosition); } else{x.innerHTML="Geolocation is not supported by this browser.";} } function showPosition(position) { x.innerHTML="Latitude: " + position.coords.latitude + "<br />Longitude: " + position.coords.longitude; } </script> </body> </html> Update.: Habt ihr tipps - ich möchte immer wenn ein user was in die db inserted die long und lat mit eintragen - ist ein kleiner ajax chat wie löse ich das am besten. Am besten wäre es zu includen denke ich und dann $long $lat zu haben - bitte helft mir! + Multi-Zitat Zitieren
#2 6. Juli 2012 AW: UPDATED - 03.07 - Javascript an PHP Du könntest deinen Aufruf deine Variablen an xajax weitergeben, der dir dann die Serverseitige Verarbeitung mittels PHP zur Verfügung stellt, um DB-Einträge vorzunehmen. Siehe die Beispiele von xajax: http://www.xajaxproject.org/ Alternativ kannst du auch andere js-Bibliotheken verwenden, wie z.B. jQuery um nen Ajax-Query abzusetzen und deine Variablen an eine verarbeitende PHP-Datei zu schicken. + Multi-Zitat Zitieren
#3 7. Juli 2012 Zuletzt bearbeitet: 9. Juli 2012 AW: UPDATED - 03.07 - Javascript an PHP index.html: HTML: <!DOCTYPE html> <meta charset="UTF-8"> <title>Geo</title> <style>output { font-family: sans-serif; font-size:14pt; }</style> <output></output> <script> (function(win, doc) { var out = doc.querySelector('output'); if (!('geolocation' in win.navigator)) { out.value = 'Leider nein.'; return; } var sync = true; function done() { sync = true; } function copy(coords) { var res = {}; [ 'latitude', 'longitude', 'altitude', 'accuracy', 'altitudeAccuracy', 'heading', 'speed' ].forEach( function(k) { res[k] = coords[k]; } ); return res; } win.navigator.geolocation.watchPosition( function(pos) { if (!sync) return; // wir warten noch auf die letzte ajax anfrage! sync = false; var coords = pos.coords; // ausgabe out.value = 'lat: ' + coords.latitude + '; lon: ' + coords.longitude; var xhr = new XMLHttpRequest; xhr.open('POST', 'script.php', true); xhr.withCredentials = true; xhr.setRequestHeader('Content-type', 'text/json; Charset=UTF-8'); xhr.addEventListener('load', done, false); xhr.addEventListener('error', done, false); xhr.addEventListener('abort', done, false); xhr.send(JSON.stringify(copy(coords))); } ); })(window, document); </script> script.php PHP: <? php $inp = file_get_contents ( 'php://input' ); $pos = json_decode ( $inp , true ); // $pos verarbeiten ...// z.b.: file_put_contents ( 'current_lat_lon.log' , $pos [ 'latitude' ] . ' | ' . $pos [ 'longitude' ]); + Multi-Zitat Zitieren
#4 7. Juli 2012 AW: UPDATED - 03.07 - Javascript an PHP Hallo, danke verstehe leider nur bahnhof , warum das via json_decode reinkommt und man nicht direkt $pos['latitude'] . ' | ' . $pos['longitude'] ausgeben kann - so kann ich das direkt in die mysql knallen .. ;(( tut mir leid versteh es nur leider überhaupt nicht .. schongarnicht weil current_lat_lon.log hier erwähnt ist. + Multi-Zitat Zitieren
#5 7. Juli 2012 AW: UPDATED - 03.07 - Javascript an PHP du solltest wirklich (noch einmal?) die Grundlagen von PHP und auch von Javascript lernen! Wenn ich schon so etwas lese wie "direkt in die mysql knallen" Du wirst die freuen wenn du die Daten direkt in die Datenbank schickst ohne sie vorher zu sichern und bald jemand das ausnutzt um deine Datenbank zu löschen :] file_put_contents nutz Murdoc nur als Beispiel um die Daten auf dem Server in eine Datei zu schreiben, dort kommt dein Mysql-Code hin. json_decode muss du nutzen da der Wert in $inp ein STRING ist. Der STRING kommt von diesem Code im Javascript JSON.stringify(copy(coords)) ein Object kann nicht einfach von Javascript nach PHP gesendet werden, daswegen Konvertiert man ihn in einen STRING (JSON), das versteht auch PHP. + Multi-Zitat Zitieren
#6 7. Juli 2012 AW: UPDATED - 03.07 - Javascript an PHP @Nanobyte.: Danke für dein Feedback jedoch "direkt in die mysql knallen" bedeutet nichts anderes als in die mysql schreiben wie du richtig sagtest. Ausserdem woher nimmst du das wissen, dass DU sagst "Du wirst die freuen wenn du die Daten direkt in die Datenbank schickst ohne sie vorher zu sichern und bald jemand das ausnutzt um deine Datenbank zu löschen" - dafür gibt es diverse "trau keinem user" methoden Verstehe ausserdem nicht warum man das ganze nicht automatisch via ajax / jquery an eine url senden kann mittels POST und dort die geodaten aufbereitet / speichert what ever .. + Multi-Zitat Zitieren
#7 7. Juli 2012 Zuletzt bearbeitet: 7. Juli 2012 AW: UPDATED - 03.07 - Javascript an PHP du kannst dir aus dem coords object auch nen query-string basteln wenns für dich einfacher is ... ich schick das ding in meinem beispiel halt direkt als json über den äther. Code: *schipp* xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; Charset=UTF-8'); *schnipp* var query = [], coords = copy(coords); Object.keys(coords).forEach(function(k) { query.push(k + '=' + encodeURIComponent(coords[k])); }); xhr.send(query.join('&')); habs ned geprüft, da im editor getippt und weils mir einfach zu blöd is auf serverseite hast dann $_POST['...'] + Multi-Zitat Zitieren