Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Jeden formularz kilka map
Forum PHP.pl > Forum > Przedszkole
krzesik
Witam,
mam problem z konstrukcją formularza zawierającego kilka przycisków do map (Google Maps) w celu oznaczania punktów i zapisu do bazy.
Pierwszy przyciska działa dobrze, jest mapa widoczna i mogę wskazać punkt i zapisać do bazy, ale przy kolejnym buttonie mapa już się nie wyświetla, proszę o pomoc.

Teraz mam tak:

DodajRekordy.php
  1. <head>
  2. ....................
  3. <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=........&libraries=drawing"></script>
  4. </head>
  5. <body>
  6. ....................
  7. <?
  8. ......
  9. while($z = mysql_fetch_array($wynik))
  10. {
  11. <div class="form-group">
  12. <label for="data" class="col-lg-2 control-label" style="width:40%;">Data</label>
  13. <div class="col-lg-2" style="width:25%;">
  14. <div class="input-group date form_date" style="width:90%;" data-date="" data-date-format="yyyy-mm-dd" data-link-format="yyyy-mm-dd">
  15. <input class="form-control" name="data" type="text" value="<? echo $r[data]; ?>" title="Data" onkeyup="CheckIsFloat(this);"/>
  16. <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
  17. </div>
  18. </div>
  19.  
  20. <div class="col-lg-4" style="width:29%;" align="center">
  21. <div class="input-group date form_time " style="width:70%;" data-date="" data-date-format="hh:ii:ss" data-link-field="dtp_input3" data-link-format="hh:ii:ss">
  22. <input class="form-control" type="text" name="godzina" value="<? echo $r[godzina];?>" title="Godzina" >
  23. <span class="input-group-addon"><span class="glyphicon glyphicon-time"></span></span>
  24. </div>
  25. </div>
  26. </div>
  27.  
  28. <label for="miejscowosc'.$nr.'" class="col-lg-2 control-label" style="width:40%;"><font color="red">Miejscowość</font></label>
  29. <div class="col-lg-8" style="width:50%;">
  30. <input type="text" id="miejscowosc'.$nr.'" name="miejsce'.$nr.'" class="form-control" maxlength="40" value="'.$z['miejsce'].'" placeholder="Miejscowość" />
  31. <button type="button" class="btn btn-success btn-sx col-lg-2" data-toggle="modal" data-target="#miejsce'.$nr.'"><span class="glyphicon glyphicon-globe"></span>&nbsp; &nbsp; GPS</a></button>
  32. </div>
  33. <label class="col-lg-4 control-label" style="width:40%;"><font color="red">Współrzędne GPS</font></label>
  34. <div class="col-lg-4" style="width:25%;">
  35. <input id="lat'.$nr.'" class="form-control" name="lat'.$nr.'" placeholder="LAT" value="'.$z['lat'].'"/></input>
  36. </div>
  37. <div class="col-lg-4" style="width:25%;">
  38. <input id="lng'.$nr.'" class="form-control" name="lon'.$nr.'" placeholder="LON" value="'.$z['lon'].'"/></input>
  39. </div>';
  40.  
  41. include 'mapa.php';
  42. .................
  43. }
  44. ?>
  45.  
  46. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  47. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
  48.  


plik mapa.php
  1. <div class="modal fade" id="miejsce<? echo $nr; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  2. <div class="modal-dialog" role="document">
  3. <div class="modal-content">
  4. <div class="modal-header">
  5. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  6. <h4 class="modal-title" id="myModalLabel" align="left">Wskaż miejscowość</h4>
  7. </div>
  8. <div class="container">
  9. <div class="row">
  10. <div class="col-sm-12">
  11. <div id="map" class="form-group"></div>
  12. </div>
  13. </div>
  14. </div>
  15. </div>
  16. </div>
  17. </div>
  18. <script>
  19.  
  20. var map;
  21. var marker = false;
  22.  
  23. function initMap() {
  24. var myLatLng = {lat: <? echo $lat.$nr; ?>, lng: <? echo $lon.$nr; ?>};
  25. var centerOfMap = new google.maps.LatLng(50.915, 18.818);
  26.  
  27. var options = {
  28. center: myLatLng,
  29. zoom: 11
  30. };
  31.  
  32. map = new google.maps.Map(document.getElementById('map'), options);
  33.  
  34. google.maps.event.addListener(map, 'click', function(event) {
  35.  
  36. var clickedLocation = event.latLng;
  37.  
  38. if(marker === false){
  39. marker = new google.maps.Marker({
  40. position: myLatLng,
  41. map: map,
  42. draggable: true
  43. });
  44. google.maps.event.addListener(marker, 'dragend', function(event){
  45. markerLocation();
  46. });
  47. } else{
  48.  
  49. marker.setPosition(myLatLng);
  50. }
  51. markerLocation();
  52. });
  53. }
  54.  
  55. function markerLocation(){
  56. var currentLocation = marker.getPosition();
  57. document.getElementById('lat<? echo $nr; ?>').value = currentLocation.lat();
  58. document.getElementById('lng<? echo $nr; ?>').value = currentLocation.lng();
  59. }
  60.  
  61. google.maps.event.addDomListener(window, 'load', initMap);
  62.  
  63. </script>
  64.  
  65.  


nospor
Tak na szybko

- skoro jestes w
echo '.....'
to myslisz ze
value="<? echo $r[data]; ?>"
ci zadziala? No nie, nie zadziala.

- pola/guziki maja miec unikalne ID a nie jak teraz tworzysz np. pole data z takim samym name/id w petli
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.