Nieuw lid |
|
Beste lezers,
ik begin net met het programmeren en dacht het al iets onder de knie te hebben. Ik had een functie dat met twee parameters een andere functie aanriep en de 2e functie gaf een array van waarden terug. Omdat dit niet werkte zoals ik had verwacht, heb ik de twee functies samengevoegd en nu zit ik met een probleem dat de for-loop niet werkt zoals ik verwacht.
Een stukje van de functie ziet er als volgt uit:
function haalGegevensUitDatabase()
{
db.transaction(function (tx)
{
tx.executeSql(selectAllStatement, [], function (tx, result)
{
dataset = result.rows;
for (var i = 0, item=null; i < dataset.length; i++)
{
alert(i);
items = dataset.item(i);
var latitudeTeZoeken=items['latitude'];
var longitudeTeZoeken=items['longitude'];
var latlng = new google.maps.LatLng(latitudeTeZoeken, longitudeTeZoeken);
var onderdelen;
var admin_area;
var land;
var postcode;
var plaats;
//plaatsMarker(latlng);
//alert("zit in de functie zoekgegevens2 "+ latitudeTeZoeken +" "+ longitudeTeZoeken);
geocoder.geocode({'latLng': latlng}, function(results, status)
{
//alert("ik zit in zoekGegevens3");
if (status == google.maps.GeocoderStatus.OK)
{
//alert("ik zit in zoekGegevens4");
if (results[0])
{
//alert("ik zit in zoekGegevens5");
onderdelen=results[0].address_components;
for (var onderdeel=0; onderdeel<(onderdelen.length); onderdeel++)
{
if (onderdelen[onderdeel].types[0]=="administrative_area_level_1")
{
admin_area=onderdelen[onderdeel].long_name;
}
if (onderdelen[onderdeel].types[0]=="country")
{
land=onderdelen[onderdeel].long_name;
}
if (onderdelen[onderdeel].types[0]=="postal_code")
{
postcode=onderdelen[onderdeel].long_name;
}
if (onderdelen[onderdeel].types[0]=="locality")
{
plaats=onderdelen[onderdeel].long_name;
}
//alert("testing");
}
//alert ("ik zit in Zoekgegevens2 deel 1 "+ admin_area + land + postcode + plaats);
//console.log("index"+ items['indexs'] + ' , ' + items['RcR']+ ' , ' + items['datum'] + ' , ' + items['tijd'] + ' , ' + items['valid']+ ' , ' + items['latitude']+ ' , ' + items['n_s']+ ' , ' + items['longitude']+ ' , ' + items['e_w']+ ' , ' + items['height']+ ' , ' + items['speed']+ ' , ' + items['heading']+ ' , ' + items['pdop']+ ' , ' + items['hdop']+ ' , ' + items['vdop']+ ' , ' + items['nsat']+ ' , ' + admin_area+ ' , ' + postcode+ ' , ' + land+ ','+ plaats);
}
else
{
alert('Geen land gevonden');
}
} else
{
alert('Geocoder failed due to: ' + status);
}
})
}
//alert ("dit moet eindelijk werken: "+ uitkomst);
//alert ("zit in functie haalGegevensUitDatabase"+ latitudeTeZoeken +" "+ longitudeTeZoeken);
console.log("index"+ item['indexs'] + ' , ' + item['RcR']+ ' , ' + item['datum'] + ' , ' + item['tijd'] + ' , ' + item['valid']+ ' , ' + item['latitude']+ ' , ' + item['n_s']+ ' , ' + item['longitude']+ ' , ' + item['e_w']+ ' , ' + item['height']+ ' , ' + item['speed']+ ' , ' + item['heading']+ ' , ' + item['pdop']+ ' , ' + item['hdop']+ ' , ' + item['vdop']+ ' , ' + item['nsat']+ ' , ' + uitkomst[0]+ ' , ' + uitkomst[1]+ ' , ' + uitkomst[2]);
})
})
}
function haalGegevensUitDatabase() { db.transaction(function (tx) { tx.executeSql(selectAllStatement, [], function (tx, result) { dataset = result.rows; for (var i = 0, item=null; i < dataset.length; i++) { alert(i); items = dataset.item(i); var latitudeTeZoeken=items['latitude']; var longitudeTeZoeken=items['longitude']; var latlng = new google.maps.LatLng(latitudeTeZoeken, longitudeTeZoeken); var onderdelen; var admin_area; var land; var postcode; var plaats; //plaatsMarker(latlng); //alert("zit in de functie zoekgegevens2 "+ latitudeTeZoeken +" "+ longitudeTeZoeken); geocoder.geocode({'latLng': latlng}, function(results, status) { //alert("ik zit in zoekGegevens3"); if (status == google.maps.GeocoderStatus.OK) { //alert("ik zit in zoekGegevens4"); if (results[0]) { //alert("ik zit in zoekGegevens5"); onderdelen=results[0].address_components; for (var onderdeel=0; onderdeel<(onderdelen.length); onderdeel++) { if (onderdelen[onderdeel].types[0]=="administrative_area_level_1") { admin_area=onderdelen[onderdeel].long_name; } if (onderdelen[onderdeel].types[0]=="country") { land=onderdelen[onderdeel].long_name; } if (onderdelen[onderdeel].types[0]=="postal_code") { postcode=onderdelen[onderdeel].long_name; } if (onderdelen[onderdeel].types[0]=="locality") { plaats=onderdelen[onderdeel].long_name; } //alert("testing"); } //alert ("ik zit in Zoekgegevens2 deel 1 "+ admin_area + land + postcode + plaats); //console.log("index"+ items['indexs'] + ' , ' + items['RcR']+ ' , ' + items['datum'] + ' , ' + items['tijd'] + ' , ' + items['valid']+ ' , ' + items['latitude']+ ' , ' + items['n_s']+ ' , ' + items['longitude']+ ' , ' + items['e_w']+ ' , ' + items['height']+ ' , ' + items['speed']+ ' , ' + items['heading']+ ' , ' + items['pdop']+ ' , ' + items['hdop']+ ' , ' + items['vdop']+ ' , ' + items['nsat']+ ' , ' + admin_area+ ' , ' + postcode+ ' , ' + land+ ','+ plaats); } else { alert('Geen land gevonden'); } } else { alert('Geocoder failed due to: ' + status); } }) } //alert ("dit moet eindelijk werken: "+ uitkomst); //alert ("zit in functie haalGegevensUitDatabase"+ latitudeTeZoeken +" "+ longitudeTeZoeken); console.log("index"+ item['indexs'] + ' , ' + item['RcR']+ ' , ' + item['datum'] + ' , ' + item['tijd'] + ' , ' + item['valid']+ ' , ' + item['latitude']+ ' , ' + item['n_s']+ ' , ' + item['longitude']+ ' , ' + item['e_w']+ ' , ' + item['height']+ ' , ' + item['speed']+ ' , ' + item['heading']+ ' , ' + item['pdop']+ ' , ' + item['hdop']+ ' , ' + item['vdop']+ ' , ' + item['nsat']+ ' , ' + uitkomst[0]+ ' , ' + uitkomst[1]+ ' , ' + uitkomst[2]); }) }) }
De eerste for-loop (regel 8) moet 10 keer worden doorlopen omdat ik 10 items in de database heb. Het systeem loopt ook wel 10 keer door de loop, alleen niet tot zover ik zou verwachten. Een for-loop zou volgens mij moeten lopen tot en met regel 64, maar in de functie hierboven loopt de loop tot aan de regel 22 en dan begint het weer bij regel 8, totdat dit 10 keer is gedaan en dan begint de programma met regel 65
Ik weet dat de functie er niet uitziet en dat ik bepaalde variabelen niet hier moet plaatsen maar omdat ik er niet uitkomt, heb ik van alles geprobeerd. Via de debug in Chrome ben ik er dus achter gekomen dat de for-loop niet zo werkt als ik zou verwachten.
Kan iemand mij hiermee helpen???
|