Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Aiuto per un passaggio di valori

    Ragazzi devo fare un quiz che dovrà finire su di un CDROM, quindi non posso usare ASP o altro, ma solo javascript per essere sicuro che funzioni su ogni client.
    Ho trovato un estensione di DM per la creazione di quiz molto semplici.Però vorrei apportare una modifica.Se volete darci un'occhiata l'indirizzo è:
    www.zseven.it/prova.asp
    In pratica vorrei fare che quando clicchi su score, non ti dica il risultato e quali erano le risposte esatte(e fin qui ci sono, basta togliere gli alert), ma ti indirizzi alla pagina successiva del quiz, ricordandosi però quale è stato il tuo punteggio.Così una volta arrivati all'ultima pagina del quiz possa dirti il totale.
    Spero di essere spiegato bene.
    Mi aiutate per favore?
    TX

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ti converrebbe usare un frame (magari nascosto) dove tenere tutti i tuoi dati?

    Portarsi un dato attraverso molte pagine HTML/JS mi sembra complesso, e rischi di farti fregare in caso l'utente vada avanti e indietro coni tasti del browser.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ciao michele,
    per quanto riguarda la possibilità dell'utente di andare avanti e indietro con il browser non penso sia un problema, basterebbe fare un fullscreen=3 se non sbaglio, in modo tale da non avere i tasti del browser e poi disabilitare anche il tasto destro del mouse...però se mi dici che è una cosa complicata potresti spiegarmi meglio come fare con un frame nascosto?
    Magari con qualche riga di codice tenendo presente quello che ho già fatto?
    Grazie mille cmq

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Premesso che il fullscreen=3 vale solo per IE (per gli altri browser non esiste il fullscreen), ti spiego come farei.

    Nella finestra apri due frame, di cui uno serve per metterci tutte le tue pagine, l'altro serve per i calcoli. Se vuoi puoi usare questo secondo frame anche per un'intestazione o per dei link che eventualmente possono servire.
    Il frame (lasciami chiamarlo piccolo) puo` anche essere invisibile, cioe` con una dimensione zero (oppure 1 pixel).


    Ogni volta che chiudi una pagina (credo che fai il submit del form), prima quindi di passare alla successiva, ti salvi il punteggio raggiunto in quella pagina in una apposita variabile che avrai definito nel frame piccolo.

    Quando vuoi valutare il punteggio (nell'ultima pagina, immagino) vai a leggere tutte le tue variabili e ne sommi il valore.

    Per accedere ad una variabile in un altro frame (nota: la variabile deve gia` esser stata definita, non puoi definirla da un altro frame):

    parent.NOMEFRAME.NOMEVAR = ...


    Spero di aver reso l'idea.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Sei stato chiarissimo Michele, ma purtroppo come ti dicevo io lavoro in ASP con VB di solito, e di JS so molto ma molto poco.
    Quello che hai detto mi è chiaro dal punto di vista logico, ma purtroppo dal punto di vista praticonon so da dove cominciare, per questo ti chiedevo qualche riga di codice se ti era possibile.
    Se potessi farmi un esempio pratico considerando quel quiz che ti avevo fatto vedere nel link saresti molto gentile.
    www.zseven.it/prova.asp
    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non posso farti tutto. Un minimo di sforzo lo devi fare anche tu.

    La funzione tipo showscore() deve stare in ogni pagina, ma alla fine non deve dare gli alert, ma salvare il dato in una variabile nel frame piccolo (chimiamolo "risultati").

    Alla fine l'ultima pagina dovra` visualizzare tutti i risultati.

    Supponiamo che nel frame risultati ci siano queste matrici:

    var usr_score = new Array(0,0,0,0,...);
    var max_score = new Array(4,6,2,5,...);

    dove il numero di elementi corrisponde al numero delle pagine, quindi il primo si riferisce alla pagina 0, il secondo alla pag. 1, ...

    Le varie funzioni showscore dovranno quindi salvare il proprio score nella matrice al posto opportuno, e passare alla pag successiva (al posto dei due alert):

    parent.risultati.usr_score[0] = score;
    document.location.href = "paginasuccessiva.htm";

    Il numero 0 si riferisce all apagina 0, poi ogni pagina avra` il suo numero.

    Quando vuoi visualizzare i risultati dovrai chiamare una funzione che visualizza i vari punteggi, confrontandoli con i dati di max_score.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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