Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Insert geolokalizacji --> Mysql
Forum PHP.pl > Forum > Przedszkole
sentinell
Witam wszystkich i każdego z osobna.

Stworzyłem przy waszej pomocy coś, doszedłem wiele kroków do przodu ale... stanąłem przed ścianą i nie wiem jak ją przejść.

Jest sobie system raportowy, dodający dane, informacje, zdjęcie, chciałbym, aby naciśnięcie ZAPISZ powodowało dodanie także lokalizacji z której dodawany jest raport, do tabeli wizyty, gdzie utworzona jest kolumna longituda i latitude

Jest obecnie ciekawy kod geolokalizacji, on co prawda jeszcze wyświetla mapkę, ale to mi nie jest potrzebne, chciałbym tylko przy okazji wciskania ZAPISZ aby dodawało współrzędne do tabeli.

KOD OBECNY: KOD PLIKU

KOD GEOLOKALIZACJI: HTML5 GEO

Widok formatki:
Puszy
W linku który podesłałeś masz rozwiązanie: https://www.w3schools.com/html/tryit.asp?fi...ml5_geolocation

Pobierasz te dwie wartości i wpisujesz do <input type="hidden" />
sentinell
Łeb mi juz spuchł od myslenia smile.gif
Może bardzo łopatologicznie ?
Puszy
Jeżeli nie używasz w projekcie jQuery podajesz poniższy kod w <head>
  1. <script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>


Następnie w <form> wrzucasz:
  1. <input type="hidden" name="latitude" />
  2. <input type="hidden" name="longitude" />


Bazując na poście ze StackOverflow http://stackoverflow.com/a/39367531/2621852 wklejasz na końcu strony w <body>:
  1. <script type="application/javascript">
  2.  
  3. $(document).ready(function () {
  4.  
  5. var apiGeolocationSuccess = function(position) {
  6. setCoordsToForm(position);
  7. };
  8.  
  9. var setCoordsToForm = function (position) {
  10. $('input[name=latitude]').val(position.coords.latitude);
  11. $('input[name=longitude]').val(position.coords.longitude);
  12. };
  13.  
  14. var tryAPIGeolocation = function() {
  15. jQuery.post( "https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyDCa1LUe1vOczX1hO_iGYgyo8p_jYuGOPU", function(success) {
  16. apiGeolocationSuccess({coords: {latitude: success.location.lat, longitude: success.location.lng}});
  17. });
  18. };
  19.  
  20. var browserGeolocationSuccess = function(position) {
  21. setCoordsToForm(position);
  22. };
  23.  
  24. var browserGeolocationFail = function(error) {
  25. switch (error.code) {
  26. case error.TIMEOUT:
  27. alert("Browser geolocation error !\n\nTimeout.");
  28. break;
  29. case error.PERMISSION_DENIED:
  30. if(error.message.indexOf("Only secure origins are allowed") == 0) {
  31. tryAPIGeolocation();
  32. }
  33. break;
  34. case error.POSITION_UNAVAILABLE:
  35. alert("Browser geolocation error !\n\nPosition unavailable.");
  36. break;
  37. }
  38. };
  39.  
  40. var tryGeolocation = function() {
  41. if (navigator.geolocation) {
  42. navigator.geolocation.getCurrentPosition(
  43. browserGeolocationSuccess,
  44. browserGeolocationFail,
  45. {maximumAge: 50000, timeout: 20000, enableHighAccuracy: true});
  46. }
  47. };
  48.  
  49. tryGeolocation();
  50. });
  51.  


Po wysłaniu formularza pola są dostępne w PHP:
  1. <?php
  2. $latitude = $_POST['latitude'];
  3. $longitude = $_POST['longitude'];
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.