Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [googleMaps] geoCode onSubmit
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
ir3nicus
Witam mam nastepujacy problem.

Chciałby w formularzu rejestracyjnym przesylac od razu dane lokalizacyjne miasta (w danm województwie) w poscie w tym celu odpalam fukcję js
geoCodeCity przed submitem().


Mój kod:

  1. <script type="text/javascript">
  2.  
  3. function geoCodeCity() {
  4.  
  5. var wojs = new Array('Dolnośląskie', 'Kujawsko-Pomorskie', 'Lubelskie', 'Lubuskie', 'Łódzkie', 'Małopolskie', 'Mazowieckie', 'Opolskie', 'Podkarpackie', 'Podlaskie', 'Pomorskie', 'Śląskie', 'Świętokrzyskie', 'Warmińsko-Mazurskie', 'Wielkopolskie', 'Zachodniopomorskie');
  6. var city = document.getElementById('city').value;
  7. var id_woj = document.getElementById('region').value;
  8. var woj = wojs[(id_woj-1)];
  9. var adres = city+', '+woj;
  10. geo = new GClientGeocoder();
  11. geo.getLocations(adres,function(response) {
  12. if (!response || response.Status.code != 200)
  13. {
  14. alert("Sorry, we were unable to geocode the first address");
  15. }
  16. else
  17. {
  18. location1 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0]}
  19.  
  20. alert(location1.lat);
  21.  
  22. document.getElementById('x').value = location1.lat;
  23. document.getElementById('y').value = location1.lon;
  24.  
  25. }
  26. });
  27. document.getElementById('f').submit();
  28.  
  29. }
  30. </script>
  31.  
  32.  
  33.  
  34. <form method="post" enctype="multipart/form-data" id="f">
  35. <input type="hidden" value="fCRegister" name="form">
  36. <input type="hidden" id="x" name="x">
  37. <input type="hidden" id="y" name="y">
  38.  
  39. ...
  40.  
  41. <p>
  42. <label>Miasto *</label>
  43. <input type="text" id="city" name="city" value="<?= Utils::isValue($d['city']);?>" class="text-input large-input">
  44. </p>
  45.  
  46. <p>
  47. <label>Województwo<br /></label>
  48. <?php print UtilsHTML::selectBox("id_region","id_region","name","", $wojs, Utils::isValue($d['id_region']), 'region'); ?>
  49. </p>
  50.  
  51.  
  52. <!--- id pola input id_region to 'region' -->
  53.  
  54. <input type="button" class="button" value="Zarejestruj się" onclick="geoCodeCity()">
  55.  
  56.  
  57. </form>
  58.  


Jak widac w kodzie używam metody alert w celach testowych , żeby wydrukowała mi odpowiednią współrzędną. Niestety
firebug wyrzuca błąd o takiej treści: ( przez ułamek sekundy wyświetla się ten alert ale potem leci submit i taki o to blad w firebugu:)


prompt aborted by user
[Break On This Error] throw Components.Exception...by user", Cr.NS_ERROR_NOT_AVAILABLE);


Czy ktoś może mi coś doradzić ?
piotr.kazmierczak
Problem może być w tym, że biblioteka Googla używa do komunikacji z serwerem AJAXa. Więc w momencie jak wysyłane jak zapytanie na ich serwer Ty przechodzisz na inną stronę, automatycznie anulując żądanie. Wrzuć po prostu submita tutaj:

  1. geo.getLocations(adres,function(response) {
  2.  
  3. //kod
  4.  
  5. document.getElementById('f').submit();
  6. });


W ten sposób przejdziesz na inną stronę już z wypełnionymi wartościami w inputach.
ir3nicus
Dzięki teraz właśnie działa. Pozdrawiam
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.