Ciao a tutti, ho un problema con un'applicazione di esempio che sto sviluppando in html 5.
In particolare riesco a scrivere i dati all'interno del database locale ma non riesco poi a recuperarli per visualizzarli nella pagina web. Qualcuno mi può aiutare? Allego il codice javascript..
<script language="JavaScript">
var systemDB;
var prod;
function init(){
stato();
initDB();
var txt=window.sessionStorage.getItem("tesi_prod");
alert(txt);
if ((txt!="")){
printProd(txt);
}
}
function initDB(){
try{
if (!window.openDatabase){
alert("client side storage not supported");
}
else {
window.sessionStorage.setItem("tesi","1");
var name='mydb';
var version='1.0';
var displayName='Database Prodotti';
var maxSize=65536;
var myDB=openDatabase(name,version,displayName,maxSize );
createTable(myDB);
insertProd();
}
}catch (e){
if (e==INVALID_STATE_ERR){
alert('Versione del database incorretta');
}
else {
alert('Errore numero '+e+'.');
}
}
systemDB=myDB;
}
function stato(){
if (navigator.onLine){
var newcontent = document.createElement('p');
newcontent.id = 'status-content';
newcontent.appendChild(document.createTextNode('AP PLICAZIONE ONLINE.'));
var scr = document.getElementById('status');
scr.parentNode.insertBefore(newcontent, scr);
}
else{
var newcontent = document.createElement('p');
newcontent.id = 'status-content';
newcontent.appendChild(document.createTextNode('AP PLICAZIONE OFFLINE.'));
var scr = document.getElementById('status');
scr.parentNode.insertBefore(newcontent, scr);
}
}
function createTable(myDB){
myDB.transaction(
function(transaction){
transaction.executeSql('DROP TABLE prodotto;');
}
);
myDB.transaction(
function(transaction){
transaction.executeSql('CREATE TABLE prodotto(codice INTEGER NOT NULL PRIMARY KEY, nome TEXT NOT NULL, caratteristiche TEXT NOT NULL, descrizione TEXT NOT NULL, prezzo INTEGER NOT NULL);',[],nullDataHandler,errorHandler);
}
);
}
function insertProd(myDB){
var myDB=systemDB;
myDB.transaction(
function(transaction){
cod=1;
nome="7210";
carat="gprs,sms,vga photo,mp3";
desc="cellulare";
price=99;
transaction.executeSql('INSERT INTO prodotto (codice,nome,caratteristiche,descrizione,prezzo) VALUES (?,?,?,?,?);',[cod,nome,carat,desc,price],nullDataHandler,errorHandler);
cod=2;
nome="n70";
carat="umts,sms,email, 2mp,mp3";
desc="smartphone";
price=299;
transaction.executeSql('INSERT INTO prodotto (codice,nome,caratteristiche,descrizione,prezzo) VALUES (?,?,?,?,?);',[cod,nome,carat,desc,price],nullDataHandler,errorHandler);
cod=3;
nome="omnia";
carat="umts,sms,email,5mp,win mobile,mp3";
desc="pocketpc";
price=499;
transaction.executeSql('INSERT INTO prodotto (codice,nome,caratteristiche,descrizione,prezzo) VALUES (?,?,?,?,?);',[cod,nome,carat,desc,price],nullDataHandler,errorHandler);
}
);
}
function setProd(form){
if(form.rad[0].checked){
alert('cellulare');
window.sessionStorage.setItem('tesi_prod','cellula re');
printProd('cellulare');
return;
}
if(form.rad[1].checked){
alert('smartphone');
window.sessionStorage.setItem('tesi_prod','smartph one');
printProd('smartphone');
return;
}
if(form.rad[2].checked){
alert('pocketPC');
window.sessionStorage.setItem('tesi_prod','pocketP C');
printProd('pocketPC');
return;
}
alert('Nessun prodotto selezionato');
}
function printProd(text){
var mydb=systemDB;
var txt=text;
mydb.transaction(
function(transaction){
transaction.executeSql("SELECT codice,nome,caratteristiche,prezzo FROM prodotto WHERE descrizione=? ;",[txt], printCommit,errorHandler2);
}
);
}
function printCommit(transaction,results){
var row;
var stringa="";
alert(results.rows.length);
for (var i=0;i<=results.rows.length;i++){
row=results.rows.item(i);
stringa = stringa + row['codice']+'\t'+row['nome']+'\t'+row['caratteristiche']+'\t'+row['prezzo']+'\n';
}
var newcontent = document.createElement('p');
newcontent.id = 'product-content';
newcontent.appendChild(document.createTextNode(str inga));
var scr = document.getElementById('product');
scr.parentNode.insertBefore(newcontent, scr);
}
function errorHandler(transaction,error){alert(error.code); }
function errorHandler2(transaction,error){alert(error.code+ "errore printProd");}
function nullDataHandler(transaction,results){}
</script>
Grazie mille!!!!!