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

    Creazione di una pagina test

    Per il mio sito ho bisogno di creare una pagina di test.

    Vi spiego meglio:

    Ho una pagina con dieci domande a scelta multipla.
    Se l'utente supera un determinato punteggio allora passa alla seconda pagina e così via.

    Chi mi dice dove posso trovare informazioni a riguardo?

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    il codice xhtml è essenzialmente formato da gruppi di radiobox

    codice:
    <label for="d1_A">A)</label> <input type="radio" name="domanda1" id="d1_A" value="a" />
    <label for="d1_B">B)</label> <input type="radio" name="domanda1" id="d1_B" value="b" />
    <label for="d1_C">C)</label> <input type="radio" name="domanda1" id="d1_C" value="c" />
    <label for="d1_D">D)</label> <input type="radio" name="domanda1" id="d1_D" value="d" />
    <label for="d1_E">E)</label> <input type="radio" name="domanda1" id="d1_E" value="e" />
    il codice per computare le risposte giuste invece dipende se hai la possibilità o meno di usare linguaggi lato server. In linea di massima potresti anche usare Javascript (lato client) ma le risposte sarebbero "in chiaro" (visibili nel codice sorgente della pagina)
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Il problema è proprio il calcolo. Sapevo che il codice xhtml da usare fosse quello che mi hai detto tu. Cmq posso utilizzare Javascript non è un problema che si vedano in chiaro, solo che non so come fare...

    Grazie

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    prova questo... sui radio assegni valore 1 alle risposte corrette e 0 a quelle errate
    (nell'esempio le risposte sono nell'ordine c-b-a)

    codice:
    <script type="text/javascript">
    
    var minanswer = 2; // imposta qui il numero minimo di risposte esatte
    
    function checkAnswer(form) {
        guess = 0;
        answer = form.getElementsByTagName('input');
        for (i=0; i<answer.length; i++) {
            if ((answer[i].type == "radio") && (answer[i].checked)) {
                if (answer[i].value == '1') ++guess;
            }
        }
        
        if (guess < minanswer) {
            alert ('Mi spiace hai risposto giusto '+ guess  + ' domanda/e.\nIl minimo richiesto è '+minanswer);
            return false;
        }
        
        return true;
    }
    
    
    
    
    
    </script>
    
    
    
    <form action="continua_test.html" method="post" onsubmit="return checkAnswer(this)">
    
    
    
        <label for="d1_A">A)</label> <input type="radio" name="domanda1" id="d1_A" value="0" />
        <label for="d1_B">B)</label> <input type="radio" name="domanda1" id="d1_B" value="0" />
        <label for="d1_C">C)</label> <input type="radio" name="domanda1" id="d1_C" value="1" />
        <label for="d1_D">D)</label> <input type="radio" name="domanda1" id="d1_D" value="0" />
        <label for="d1_E">E)</label> <input type="radio" name="domanda1" id="d1_E" value="0" />
    </p>
    
    
    
        <label for="d2_A">A)</label> <input type="radio" name="domanda2" id="d2_A" value="0" />
        <label for="d2_B">B)</label> <input type="radio" name="domanda2" id="d2_B" value="1" />
        <label for="d2_C">C)</label> <input type="radio" name="domanda2" id="d2_C" value="0" />
        <label for="d2_D">D)</label> <input type="radio" name="domanda2" id="d2_D" value="0" />
        <label for="d2_E">E)</label> <input type="radio" name="domanda2" id="d2_E" value="0" />
    </p>
    
    
    
        <label for="d3_A">A)</label> <input type="radio" name="domanda3" id="d3_A" value="1" />
        <label for="d3_B">B)</label> <input type="radio" name="domanda3" id="d3_B" value="0" />
        <label for="d3_C">C)</label> <input type="radio" name="domanda3" id="d3_C" value="0" />
        <label for="d3_D">D)</label> <input type="radio" name="domanda3" id="d3_D" value="0" />
        <label for="d3_E">E)</label> <input type="radio" name="domanda3" id="d3_E" value="0" />
    </p>
    <input type="submit" />
    </form>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Perfetto, era proprio quello di cui avevo bisogno!

    if (guess < minanswer) {
    alert ('Mi spiace hai risposto giusto solamente a '+ guess + ' domanda/e.\nIl minimo richiesto è '+minanswer);
    return false;
    }

    Solo un'altra cosa, dopo il controllo di sopra, se l'utente supera il minimo di domande giuste consentito devo mettere la pagina del secondo livello. Come faccio?

    Scusami del disturbo e grazie ancora.

  6. #6
    Scusami, ho letto meglio lo script e praticamente mi sono risposto da solo.

    Grazie di tutto, è davvero quello di cui avevo bisogno!!



  7. #7
    Ciao, ho messo a punto lo script però c'è un altro problema.
    Quando lo testo aprendo normalmente la pagina va tutto bene, quando lo provo sul webserver dopo l'alert mi apre la nuova pagina e mi dice:

    METHOD NOT ALLOWED
    The requested method POST is not allowed for the URL /lcbaidcbiadubcida/testsuperato.html.


    come risolvo??

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.