I can't get get continent value in input field

hello i have following code:

> <!DOCTYPE html>

> <html>

> <head>

>     <meta http-equiv="content-type" content="text/html; charset=UTF-8">





>     <script type="text/javascript" src="//code.jquery.com/jquery-1.7.1.js"></script>





>     <style type="text/css">
>         #map {

>             width: 700px;

>             height: 450px;
>         }
>     </style>



>     <title>
>         test</title>





>     <script type='text/javascript'>
>         //<![CDATA[



>         var map;

>         var marker;

>         var geocoder; // this will be the service that searches an address and returns the position

>         function initMap() {

>             var initialCenter = new google.maps.LatLng(50.5, 4.50); // somewhere in Belgium

>             map = new google.maps.Map(document.getElementById('map'), {

>                 zoom: 8,

>                 center: initialCenter,

>                 mapTypeId: 'terrain'

>             });

>             geocoder = new google.maps.Geocoder();

>         }

>         // search their location

>         function searchAddress() {

>             var addressString = document.getElementById('search').value;

>             addressToPosition(addressString);

>         }

>         // draggable marker

>         function placeMarker(lat, lng) {

>             // if a previous marker exists, let's first remove it from the map

>             if (marker) {

>                 marker.setMap(null);

>             }

>             // place the marker

>             marker = new google.maps.Marker({

>                 position: new google.maps.LatLng(lat, lng),

>                 map: map,

>                 draggable: true

>             });

>             // on drag-end, do this:

>             marker.addListener('dragend', function(e) {

>                 var newPosition = marker.getPosition();

>                 var lat = Number(newPosition.lat());

>                 var lng = Number(newPosition.lng());

>                 putCoordinates(lat, lng);

>                 // search address by lat, lng

>                 addressToPosition(lat + ',' + lng);

>             });

>         }

>         // put the gps coordinates in input elements

>         function putCoordinates(lat, lng) {

>             document.getElementById('lat').value = lat;

>             document.getElementById('lng').value = lng;

>         }

>         // search for an address

>         function addressToPosition(addressString) {

>             geocoder.geocode({
>                 'address': addressString
>             }, function(results, status) {

>                 if (status == google.maps.GeocoderStatus.OK) {

>                     if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {

>                         var position = results[0].geometry.location;

>                         var lat = position.lat();

>                         var lng = position.lng();

>                         // center the map

>                         map.setCenter(position);

>                         // zoom a little

>                         if (map.getZoom() < 10) {

>                             map.setZoom(14);

>                         }

>                         // place marker

>                         placeMarker(lat, lng);

>                         // display coordinates in input

>                         putCoordinates(lat, lng);


>                         // clear previous values

>                         clearElementsByClass('component');

>                         // address components

>                         for (var i in results[0].address_components) {

>                             // search for postal code

>                             if (results[0].address_components[i].types.indexOf('postal_code') > -1) {

>                                 document.getElementById('postal_code').value = results[0].address_components[i].long_name;

>                             }


>                             // search for street_number

>                             if (results[0].address_components[i].types.indexOf('street_number') > -1) {

>                                 document.getElementById('street_number').value = results[0].address_components[i].long_name;

>                             }

>                             // search for route    street address

>                             if (results[0].address_components[i].types.indexOf('route') > -1) {

>                                 document.getElementById('route').value = results[0].address_components[i].long_name;

>                             }

>                             // search for sublocality

>                             if (results[0].address_components[i].types.indexOf('sublocality') > -1) {

>                                 document.getElementById('sublocality').value = results[0].address_components[i].long_name;

>                             }

>                             // search for locality    city

>                             if (results[0].address_components[i].types.indexOf('locality') > -1) {

>                                 document.getElementById('city').value = results[0].address_components[i].long_name;

>                             }

>                             // search for administrative_area_level_1 province

>                             if (results[0].address_components[i].types.indexOf('administrative_area_level_1') > -1) {

>                                 document.getElementById('province').value = results[0].address_components[i].long_name;

>                             }

>                             // search for administrative_area_level_2 region

>                             if (results[0].address_components[i].types.indexOf('administrative_area_level_2') > -1) {

>                                 document.getElementById('region').value = results[0].address_components[i].long_name;

>                             }

>                             // search for country    country

>                             if (results[0].address_components[i].types.indexOf('country') > -1) {

>                                 document.getElementById('country').value = results[0].address_components[i].long_name;


>                             }


>                             // search for continent



>                             if (results[0].address_components[i].types.indexOf('country','political') > -1)

>                                         {

>                                           // continentcode = 'AO';
>                                     continentcode = results[0].address_components[i].short_name;

>                                 document.getElementById('continent2').value = results[0].address_components[i].short_name;





>                             }





>                         }


>                     }


>                 }


>             });


>         }


>         //

>         function clearElementsByClass(className) {

>             var elements = document.getElementsByClassName(className);

>             for (var i in elements) {

>                 elements[i].value = "";

>             }

>         }


>         ///////////

>         // track client position

>         function trackPosition() {

>             if (navigator.geolocation) {

>                 navigator.geolocation.getCurrentPosition(function(position) {

>                         var lat = position.coords.latitude;

>                         var lng = position.coords.longitude;

>                         // place marker

>                         placeMarker(lat, lng);

>                         // display coordinates in input

>                         putCoordinates(lat, lng);

>                         // search address by lat, lng

>                         addressToPosition(lat + ',' + lng);

>                     },

>                     function(position) {


>                     }

>                 )

>             }

>         }


>                              $(function() {


>                                 var Codes = function(code, name) {

>                                     this.code = code;

>                                     this.name = name;

>                                 };


>                                 var codecontinent = [

>                                     new Codes("AD", "Europe"),

>                                     new Codes("AE", "Asia"),

>                                     new Codes("AF", "Asia"),

>                                     new Codes("AG", "North America"),

>                                     new Codes("AI", "North America"),

>                                     new Codes("AL", "Europe"),

>                                     new Codes("AM", "Asia"),

>                                     new Codes("AN", "North America"),

>                                     new Codes("AO", "Africa"),

>                                     new Codes("AQ", "Antarctica"),

>                                     new Codes("AR", "South America"),

>                                     new Codes("AS", "Australia"),

>                                     new Codes("AT", "Europe"),

>                                     new Codes("AU", "Australia"),

>                                     new Codes("AW", "North America"),

>                                     new Codes("AZ", "Asia"),

>                                     new Codes("BA", "Europe"),

>                                     new Codes("BB", "North America"),

>                                     new Codes("BD", "Asia"),

>                                     new Codes("BE", "Europe"),

>                                     new Codes("BF", "Africa"),

>                                     new Codes("BG", "Europe"),

>                                     new Codes("BH", "Asia"),

>                                     new Codes("BI", "Africa"),

>                                     new Codes("BJ", "Africa"),

>                                     new Codes("BM", "North America"),

>                                     new Codes("BN", "Asia"),

>                                     new Codes("BO", "South America"),

>                                     new Codes("BR", "South America"),

>                                     new Codes("BS", "North America"),

>                                     new Codes("BT", "Asia"),

>                                     new Codes("BW", "Africa"),

>                                     new Codes("BY", "Europe"),

>                                     new Codes("BZ", "North America"),

>                                     new Codes("CA", "North America"),

>                                     new Codes("CC", "Asia"),

>                                     new Codes("CD", "Africa"),

>                                     new Codes("CF", "Africa"),

>                                     new Codes("CG", "Africa"),

>                                     new Codes("CH", "Europe"),

>                                     new Codes("CI", "Africa"),

>                                     new Codes("CK", "Australia"),

>                                     new Codes("CL", "South America"),

>                                     new Codes("CM", "Africa"),

>                                     new Codes("CN", "Asia"),

>                                     new Codes("CO", "South America"),

>                                     new Codes("CR", "North America"),

>                                     new Codes("CU", "North America"),

>                                     new Codes("CV", "Africa"),

>                                     new Codes("CX", "Asia"),

>                                     new Codes("CY", "Asia"),

>                                     new Codes("CZ", "Europe"),

>                                     new Codes("DE", "Europe"),

>                                     new Codes("DJ", "Africa"),

>                                     new Codes("DK", "Europe"),

>                                     new Codes("DM", "North America"),

>                                     new Codes("DO", "North America"),

>                                     new Codes("DZ", "Africa"),

>                                     new Codes("EC", "South America"),

>                                     new Codes("EE", "Europe"),

>                                     new Codes("EG", "Africa"),

>                                     new Codes("EH", "Africa"),

>                                     new Codes("ER", "Africa"),

>                                     new Codes("ES", "Europe"),

>                                     new Codes("ET", "Africa"),

>                                     new Codes("FI", "Europe"),

>                                     new Codes("FJ", "Australia"),

>                                     new Codes("FK", "South America"),

>                                     new Codes("FM", "Australia"),

>                                     new Codes("FO", "Europe"),

>                                     new Codes("FR", "Europe"),

>                                     new Codes("GA", "Africa"),

>                                     new Codes("GB", "Europe"),

>                                     new Codes("GD", "North America"),

>                                     new Codes("GE", "Asia"),

>                                     new Codes("GF", "South America"),

>                                     new Codes("GG", "Europe"),

>                                     new Codes("GH", "Africa"),

>                                     new Codes("GI", "Europe"),

>                                     new Codes("GL", "North America"),

>                                     new Codes("GM", "Africa"),

>                                     new Codes("GN", "Africa"),

>                                     new Codes("GP", "North America"),

>                                     new Codes("GQ", "Africa"),

>                                     new Codes("GR", "Europe"),

>                                     new Codes("GS", "Antarctica"),

>                                     new Codes("GT", "North America"),

>                                     new Codes("GU", "Australia"),

>                                     new Codes("GW", "Africa"),

>                                     new Codes("GY", "South America"),

>                                     new Codes("HK", "Asia"),

>                                     new Codes("HN", "North America"),

>                                     new Codes("HR", "Europe"),

>                                     new Codes("HT", "North America"),

>                                     new Codes("HU", "Europe"),

>                                     new Codes("ID", "Asia"),

>                                     new Codes("IE", "Europe"),

>                                     new Codes("IL", "Asia"),

>                                     new Codes("IM", "Europe"),

>                                     new Codes("IN", "Asia"),

>                                     new Codes("IO", "Asia"),

>                                     new Codes("IQ", "Asia"),

>                                     new Codes("IR", "Asia"),

>                                     new Codes("IS", "Europe"),

>                                     new Codes("IT", "Europe"),

>                                     new Codes("JE", "Europe"),

>                                     new Codes("JM", "North America"),

>                                     new Codes("JO", "Asia"),

>                                     new Codes("JP", "Asia"),

>                                     new Codes("KE", "Africa"),

>                                     new Codes("KG", "Asia"),

>                                     new Codes("KH", "Asia"),

>                                     new Codes("KI", "Australia"),

>                                     new Codes("KM", "Africa"),

>                                     new Codes("KN", "North America"),

>                                     new Codes("KP", "Asia"),

>                                     new Codes("KR", "Asia"),

>                                     new Codes("KW", "Asia"),

>                                     new Codes("KY", "North America"),

>                                     new Codes("KZ", "Asia"),

>                                     new Codes("LA", "Asia"),

>                                     new Codes("LB", "Asia"),

>                                     new Codes("LC", "North America"),

>                                     new Codes("LI", "Europe"),

>                                     new Codes("LK", "Asia"),

>                                     new Codes("LR", "Africa"),

>                                     new Codes("LS", "Africa"),

>                                     new Codes("LT", "Europe"),

>                                     new Codes("LU", "Europe"),

>                                     new Codes("LV", "Europe"),

>                                     new Codes("LY", "Africa"),

>                                     new Codes("MA", "Africa"),

>                                     new Codes("MC", "Europe"),

>                                     new Codes("MD", "Europe"),

>                                     new Codes("ME", "Europe"),

>                                     new Codes("MG", "Africa"),

>                                     new Codes("MH", "Australia"),

>                                     new Codes("MK", "Europe"),

>                                     new Codes("ML", "Africa"),

>                                     new Codes("MM", "Asia"),

>                                     new Codes("MN", "Asia"),

>                                     new Codes("MO", "Asia"),

>                                     new Codes("MP", "Australia"),

>                                     new Codes("MQ", "North America"),

>                                     new Codes("MR", "Africa"),

>                                     new Codes("MS", "North America"),

>                                     new Codes("MT", "Europe"),

>                                     new Codes("MU", "Africa"),

>                                     new Codes("MV", "Asia"),

>                                     new Codes("MW", "Africa"),

>                                     new Codes("MX", "North America"),

>                                     new Codes("MY", "Asia"),

>                                     new Codes("MZ", "Africa"),

>                                     new Codes("NA", "Africa"),

>                                     new Codes("NC", "Australia"),

>                                     new Codes("NE", "Africa"),

>                                     new Codes("NF", "Australia"),

>                                     new Codes("NG", "Africa"),

>                                     new Codes("NI", "North America"),

>                                     new Codes("NL", "Europe"),

>                                     new Codes("NO", "Europe"),

>                                     new Codes("NP", "Asia"),

>                                     new Codes("NR", "Australia"),

>                                     new Codes("NZ", "Australia"),

>                                     new Codes("OM", "Asia"),

>                                     new Codes("PA", "North America"),

>                                     new Codes("PE", "South America"),

>                                     new Codes("PF", "Australia"),

>                                     new Codes("PG", "Australia"),

>                                     new Codes("PH", "Asia"),

>                                     new Codes("PK", "Asia"),

>                                     new Codes("PL", "Europe"),

>                                     new Codes("PM", "North America"),

>                                     new Codes("PN", "Australia"),

>                                     new Codes("PR", "North America"),

>                                     new Codes("PS", "Asia"),

>                                     new Codes("PT", "Europe"),

>                                     new Codes("PW", "Australia"),

>                                     new Codes("PY", "South America"),

>                                     new Codes("QA", "Asia"),

>                                     new Codes("RE", "Africa"),

>                                     new Codes("RO", "Europe"),

>                                     new Codes("RS", "Europe"),

>                                     new Codes("RU", "Europe"),

>                                     new Codes("RW", "Africa"),

>                                     new Codes("SA", "Asia"),

>                                     new Codes("SB", "Australia"),

>                                     new Codes("SC", "Africa"),

>                                     new Codes("SD", "Africa"),

>                                     new Codes("SE", "Europe"),

>                                     new Codes("SG", "Asia"),

>                                     new Codes("SH", "Africa"),

>                                     new Codes("SI", "Europe"),

>                                     new Codes("SJ", "Europe"),

>                                     new Codes("SK", "Europe"),

>                                     new Codes("SL", "Africa"),

>                                     new Codes("SM", "Europe"),

>                                     new Codes("SN", "Africa"),

>                                     new Codes("SO", "Africa"),

>                                     new Codes("SR", "South America"),

>                                     new Codes("ST", "Africa"),

>                                     new Codes("SV", "North America"),

>                                     new Codes("SY", "Asia"),

>                                     new Codes("SZ", "Africa"),

>                                     new Codes("TC", "North America"),

>                                     new Codes("TD", "Africa"),

>                                     new Codes("TF", "Antarctica"),

>                                     new Codes("TG", "Africa"),

>                                     new Codes("TH", "Asia"),

>                                     new Codes("TJ", "Asia"),

>                                     new Codes("TK", "Australia"),

>                                     new Codes("TM", "Asia"),

>                                     new Codes("TN", "Africa"),

>                                     new Codes("TO", "Australia"),

>                                     new Codes("TR", "Asia"),

>                                     new Codes("TT", "North America"),

>                                     new Codes("TV", "Australia"),

>                                     new Codes("TW", "Asia"),

>                                     new Codes("TZ", "Africa"),

>                                     new Codes("UA", "Europe"),

>                                     new Codes("UG", "Africa"),

>                                     new Codes("US", "North America"),

>                                     new Codes("UY", "South America"),

>                                     new Codes("UZ", "Asia"),

>                                     new Codes("VC", "North America"),

>                                     new Codes("VE", "South America"),

>                                     new Codes("VG", "North America"),

>                                     new Codes("VI", "North America"),

>                                     new Codes("VN", "Asia"),

>                                     new Codes("VU", "Australia"),

>                                     new Codes("WF", "Australia"),

>                                     new Codes("WS", "Australia"),

>                                     new Codes("YE", "Asia"),

>                                     new Codes("YT", "Africa"),

>                                     new Codes("ZA", "Africa"),

>                                     new Codes("ZM", "Africa"),

>                                     new Codes("ZW", "Africa")

>                                 ];


>                                 var utils = {};

>                                 // Could create a utility function to do this

>                                 utils.inArray = function(searchFor, property) {

>                                     var retVal = -1;

>                                     var self = this;

>                                     for (var index = 0; index < self.length; index++) {

>                                         var item = self[index];

>                                         if (item.hasOwnProperty(property)) {

>                                             if (item[property].toLowerCase() === searchFor.toLowerCase()) {

>                                                 retVal = index;

>                                                 return retVal;

>                                             }

>                                         }

>                                     };

>                                     return retVal;

>                                 };


>                                 // or we could create a function on the Array prototype indirectly

>                                 Array.prototype.inArray = utils.inArray;


>                                 // let's use the prototype for now

>                                 var i = codecontinent.inArray(continentcode, "code");


>                                 //$('#output').text(codecontinent[i].name);


>                                 $(":input[id=continent]").val(codecontinent[i].name);


>                                 // or we could create a function on the Array prototype directly

>                                 /*

>         Array.prototype.inArray2 = function(searchFor, property) {

>                 var retVal = -1;

>                 $.each(this, function(index, item) {

>                         if (item.hasOwnProperty(property)) {

>                                 if (item[property].toLowerCase() === searchFor.toLowerCase()) {

>                                         retVal = index;

>                                         return false;

>                                 }

>                         }

>                 });

>                 return retVal;

>         };

>         */


>                             }); //]]>
>     </script>





> </head>



> <body>

>     <div id="map"></div>

>     <input id="search" /> <input type="button" value="SEARCH" onclick="searchAddress()" /><br/>

>     <input type="button" value="TRACK" onclick="trackPosition()" />

>     <hr/>

>     <form action="post.php" method="post">

>         <input class="position" id="lat" name="lat" placeholder="latitude" />

>         <input class="position" id="lng" name="lng" placeholder="longitude" />

>         <input class="component" id="route" name="route" placeholder="route" />

>         <input class="component" id="street_number" name="street_number" placeholder="street_number" />

>         <input class="component" id="sublocality" name="sublocality" placeholder="sublocality" />

>         <input class="component" id="city" name="locality" placeholder="locality" />

>         <input class="component" id="province" name="administrative_area_level_1" placeholder="province" />

>         <input class="component" id="region" name="administrative_area_level_2" placeholder="region" />

>         <input class="component" id="postal_code" name="postal_code" placeholder="postal_code" />

>         <input class="component" id="country" name="country" placeholder="country" />
>         <input class="component" id="continent" name="continent" placeholder="continent" />
>         <input class="component" id="continent2" name="continent2" placeholder="continent2" />

>         <input type="submit" value="Submit data" />

>     </form>





>     <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCUYsLGs_ek6Ids4TN1ZZeJvv6X-r4j5N4&callback=initMap"></script>





> </body>



> </html>

I can’t get value of continentcode variable from results[0].address_components[i].short_name;

it’s undefined
For example searching for Italy
in following part of code:

if(results[0].address_components[i].types.indexOf(‘country’,‘political’)> -1)
{
replacing
continentcode=results[0].address_components[i].short_name;
with
document.getElementById(‘continent’).value = results[0].address_components[i].short_name;

i get “IT” short name in input field continent

but if
i insert
continentcode=results[0].address_components[i].short_name;
continentcode give me undefined variable
My scope is get “IT” in variable continentcode and compare with function $(function(){
var Codes=function(code,name)…
to get continent Europe …

I hope I understand
can you help me?
thanks

Wow. I had to reformat the entire code to see through it. How did the > get in your code in the first place?

  1. Create a reduced test case so others can easily test it on codepen.io or similar. I created one for myself to test the problem.
  2. If you have problems with indenting your code, let your editor do it for you (Atom.io has auto indent features) This makes it a lot easier to identify the problem.
  3. You don’t need CDATA annotations if you don’t let XML parse your document.
  4. It is really confusing to have commented code that doesn’t make the function end on the same indentation level:

So these are the points you can take care of to have a better overview of the problem. (and not make yourself get in the way)

Lets debug it

So If I open the devtools and check the console - I see an error! We can work with that. If I click the underlined file + line number the devtools even take me to the file where the error happens. We can set a breakpoint, reload the page and see what actually happens there.

On the right side, you see the scope that is available to that context right now. We are now on that line and we can inspect what is happening. There is no variable continentcode. But there is codecontinent. However, I am not sure how your inArray function is supposed to work (besides that manipulating the default prototypes is a bad idea).

Lets search where you actually define continentcode.
In the function addressToPosition you set the variable continentcode. When do you call that function?
In searchAddress, placeMarker and trackPosition. None of these functions are actually called before.

So you can either set a default continentcode, or call one of the functions before you ask for continentcode.

This problem is mostly an organizational one. If you properly organize your code and debug your code and think about how to handle the required data for each function call (I wouldn’t pollute window or document for that), you can find the problems faster and fix them.

Hope this helps.

Best,
Martin

2 Likes

Just picking up on what Martin has said about code formatting, you can get the correct syntax highlighting you need to use the backtick key `. For a single attribute or short pieces you want to show inline, then just use a single back tick either side of it such as - <div>This is a div tag</div> - being shown inline. Or for a block of code, use three backticks on the line above ```, and three on the line below.

<!DOCTYPE html>
  <html>
    <head>
      <title>A title here</head>
    </head>
    <body>
      <header>
        <nav></nav>
      </header>
      <section>
        <article></article>
        <article></article>
        <article></article>
      </section>
    </body>
</html>

The backtick key can usually be found to the left of the numbers on a Windows PC, and usually to the left of the Z on a Mac, but this does vary depending on the region you’re in.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.