Ciao ragazzi, ho da poco dato un occhiata alla nuova funzione di html5, il database sql.
Ho questa funzione, che dovrebbe salvare in un array,i dati prelevati da una tabella del database:
codice:
//sites è l'array in cui devo inserire i valori prelevati dal db
var sites=new Array();
var db = openDatabase('db', '1.0', 'the sites where always https has to be active', 2 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS sites (id integer primary key autoincrement, text)');
tx.executeSql('SELECT * FROM sites', [], function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
var text_value=results.rows.item(i).text;
alert(text_value);
sites.push(text_value);
}
});
});
alert(sites.length);
adesso,dopo che salvo il valore della row nella variabile text_value, il push del valore nell'array sembra non funzionare. La cosa strana è che l'alert mostra correttemente il valore prelevato.
Anche l'ultimo alert, mostra che la lunghezza dell'array rimane a 0, nonostante dentro la funzione io faccia il push di tutti i valori.
Come mai? Il problema è legato alla natura asincrona della connessione?
grazie