Visualizzazione dei risultati da 1 a 5 su 5

Discussione: query senza risultato

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    78

    query senza risultato

    Ho un problema con una query web sql.
    Voglio leggere dei dati da un db, e il seguente codice funziona perfettamente:
    codice:
    db.transaction(function (tx) {
          tx.executeSql('SELECT * FROM '+nomePartita+'', [], function (tx, results) {
           var len = results.rows.length, i;
           for (i = 0; i < len; i++){
                alert(results.rows.item(i).nome); 
           }
         }, null);
    });
    ora voglio che il risultato venga passato come parametri con il get ad una pagina, e ho scritto questo:
    codice:
    var giocatori;
    db.transaction(function (tx) {
          tx.executeSql('SELECT * FROM '+nomePartita+'', [], function (tx, results) {
              giocatori=new Array(results.rows.length);
               var len = results.rows.length, i;
               for (i = 0; i < len; i++){
                giocatori[i]=(results.rows.item(i).nome);
                     }
         }, null);
    });
        
    window.open("tabella.html?primo="+giocatori[0]+"&secondo="+giocatori[1]+"&terzo="+giocatori[2]+"","_self");
    Ma riscontro che "giocatori" risulta indefinito.
    Ho il sospetto che la query venga fatta in maniera asincrona, però bo.
    Qualcuno sa aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    78
    nessuno? Mi sembra una funzionalità base, sicuramente deve mancarmi qualcosa

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    apri la popup all'interno del funzione di callback

    function (tx, results) {
    ...
    window.open("tabella.html? ...
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    78
    oh grazie! Mi è chiaro il perché adesso funziona, ma non perché nel mio codice no.
    La query viene eseguita quando?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    se sai perche ora funziona dovresti sapere anche perche col tuo codice no, perche ora funziona? la chiamata al db viene eseguita subito, ma non puoi sapere quant'è il tempo di eleborazione, dipende da vari fattori, il server dove c'è il db, la rete ecc... in poche parole non sai quanto può metterci, può essere un millisecondo o 1 minuto, terminata l'erlaborazione avrai i tuoi dati nel client(browser/js).

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 © 2026 vBulletin Solutions, Inc. All rights reserved.