Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    6

    HTML 5 - Client side storage

    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!!!!!

  2. #2
    Questo è un forum di (x)html ... dov'è il codice?

    ...Hai sbagliato sezione (e titolo). Chiedi di farti spostare in Javascript
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    6
    Si in effetti non hai tutti i torti..è che il mio è un problema con le librerie di HTML 5 che fanno parte integrante della specifica del linguaggio..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.