I am facing an issue with incorporating sqlite queries into the back getJSON response function in my phonegap application.
After trying to implement this code, I continuously encounter the following error:
INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.
This is the snippet of my code:
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// establishing DB connection
var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
db.transaction(populateDB, errorCB, successCB);
}
function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS buses');
tx.executeSql('CREATE TABLE IF NOT EXISTS buses (bus_id INTEGER PRIMARY KEY,bus_no TEXT, bus_time TEXT,from_loc TEXT,to_loc TEXT,route TEXT)');
$.getJSON('http://myegy.me/maryam/asem/api.php?table=trip', function(data) {
$.each(data, function(key, val) {
tx.executeSql('INSERT INTO buses (bus_no,from_loc,to_loc,route) VALUES ("'+val['trip_number']+'","'+val['from_id']+'","'+val['to_id']+'","'+val['stop_station']+'")');
});
});
tx.executeSql('DROP TABLE IF EXISTS bus_stations');
tx.executeSql('CREATE TABLE IF NOT EXISTS bus_stations (id INTEGER PRIMARY KEY,station_name TEXT, station_description TEXT,station_lat TEXT,station_long TEXT)');
$.getJSON('http://myegy.me/maryam/asem/api.php?table=station', function(data) {
$.each(data, function(key, val) {
tx.executeSql('INSERT INTO bus_stations (station_name,station_lat,station_long) VALUES ("'+val['station_name']+'","'+val['latitude']+'","'+val['longitude']+'")');
});
});
}
</script>
The issue lies within these two lines:
tx.executeSql('INSERT INTO buses (bus_no,from_loc,to_loc,route) VALUES ("'+val['trip_number']+'","'+val['from_id']+'","'+val['to_id']+'","'+val['stop_station']+'")');
and
tx.executeSql('INSERT INTO bus_stations (station_name,station_lat,station_long) VALUES ("'+val['station_name']+'","'+val['latitude']+'","'+val['longitude']+'")');