- Home
- Categorie
- Coding e Sistemistica
- Coding
- come rendere form multisessione dinamico?
-
come rendere form multisessione dinamico?
Ciao a tutti,
ho un problema con un form a più schermate, ora mi spiego.Ho realizzato un form con delle domande e delle risposte già preimpostate e prese dal db, l'utente va sulla prima schermata legge la prima domanda e clicca su una delle 3 possibili risposte, poi va avanti sulla seconda schermata, e così via fino ad arrivare a 12 schermate. Alla dodicesima schermata non c'è più il pulsante VAI AVANTI ma c'è il pulsante INSERISCI TUTTE LE RISPOSTE e cliccando tutte le risposte vengono registrate nel db.
Tutto funziona correttamente il mio problema è che le domande devono sempre essere 12 ne più ne meno altrimenti non funziona più.
E ora spiego il perché:
Queste sono le 12 schermate
<?php
$_GET['pagina'] = (isSet($_GET['pagina']) && ($_GET['pagina'] > 3)) ? $_GET['pagina'] : 3;
switch ($_GET[pagina])
{case 1: $pagina = '../pann_contr_comune/include_utente_case1_corsi.php'; break;
case 1b: $pagina = '../pann_contr_comune/include_utente_case1_corsi.php'; break;case 2: $pagina = '../pann_contr_comune/include_utente_case2_corsi.php'; break;
case 2b: $pagina = '../pann_contr_comune/include_utente_case2_corsi.php'; break;case 3: $pagina = '../pann_contr_comune/include_utente_case3_corsi.php'; break;case 3b: $pagina = '../pann_contr_comune/include_utente_case3_corsi.php'; break;
case 4: $pagina = '../pann_contr_comune/include_utente_case4_corsi.php'; break;case 4b: $pagina = '../pann_contr_comune/include_utente_case4_corsi.php'; break;
case 5: $pagina = '../pann_contr_comune/include_utente_case5_corsi.php'; break;case 5b: $pagina = '../pann_contr_comune/include_utente_case5_corsi.php'; break;
case 6: $pagina = '../pann_contr_comune/include_utente_case6_corsi.php'; break;case 6b: $pagina = '../pann_contr_comune/include_utente_case6_corsi.php'; break;
case 7: $pagina = '../pann_contr_comune/include_utente_case7_corsi.php'; break;case 7b: $pagina = '../pann_contr_comune/include_utente_case7_corsi.php'; break;
case 8: $pagina = '../pann_contr_comune/include_utente_case8_corsi.php'; break;case 8b: $pagina = '../pann_contr_comune/include_utente_case8_corsi.php'; break;
case 9: $pagina = '../pann_contr_comune/include_utente_case9_corsi.php'; break;case 9b: $pagina = '../pann_contr_comune/include_utente_case9_corsi.php'; break;
case 10: $pagina = '../pann_contr_comune/include_utente_case10_corsi.php'; break;case 10b: $pagina = '../pann_contr_comune/include_utente_case10_corsi.php'; break;
case 11: $pagina = '../pann_contr_comune/include_utente_case11_corsi.php'; break;case 11b: $pagina = '../pann_contr_comune/include_utente_case11_corsi.php'; break;
case 12: $pagina = '../pann_contr_comune/include_utente_case12_corsi.php'; break;case 12b: $pagina = '../pann_contr_comune/include_utente_case12_corsi.php'; break;
}
include($pagina);
?>Nel codice della prima domanda ho messo:
<?=maiuscolo(($rowfile5['domanda']))?>
<input type="radio" name="risposta_domanda_1" value="1" <? if ($_POST["risposta_domanda_1"] == "1") echo "CHECKED"; ?>
<input type="radio" name="risposta_domanda_1" value="2" <? if ($_POST["risposta_domanda_1"] == "2") echo "CHECKED"; ?>
<input type="radio" name="risposta_domanda_1" value="3" <? if ($_POST["risposta_domanda_1"] == "3") echo "CHECKED"; ?><input name="submit" type="submit" class="pulsante" value="continua">
<input type="hidden" name="pagina" value="1b">e per andare a pagina 2 ho messo questo:
<?
if ($pagina==1b){session_register("risposta_domanda_1");
$URL="include_utente_case2_corsi.php?pagina=2";
header ("Location: ".$URL);}
?>e così via per tutte e 12 le domande.
Ma se un giorno il corso fosse di 13 o più, o meno domande? Sono fregato. Non c'è un modo per rendere dinamico il numero delle schermate in base al numero delle domande che sono presenti nel corso?
-
Ti azzardo l'idea, poi per la realizzazione è un altro paio di maniche.
Se mettessi le domande in un database (o nel caso in un array) e le richiamassi da un'unica pagina? Poi le mostri a gruppi di dodici. Quando qualcuno risponde alle domande e clicca sul pulsante prosegui, le risposte vengono salvate o in un cookie o in un array che però devi aggiornare e reinviare fino alla fine, implementandolo ad ogni pagina.
Quando, con una semplice funzione matematica, vedi che sei alla fine delle domande, allora sostituisci il pulsante 'prosegui' con 'invia le risposte'.
Mi sono spiegato quasi chiaramente?
-
Potrebbe essere un'idea, grazie.
-
Figurati. Fammi sapere poi se lo reailizzi e soprattutto se viene.