dawid6512
23.05.2016, 09:46:10
Witam!
Chce zrobic test taki ze jest z 15 pytan i kazde pytanie to inna strona.
np. klikasz rozpocznij test i przenosi na strone strona.pl/test?=1 gdzie jest pierwsze pytanie. Gdy odpowiemy i nacisnimy submit "Dalej" przenosi na strona.pl/test.php?=2 gdzie jest 2 pytanie i tak dalej do 15 az przeniesie do strony strona.pl/test.php?=wynik gdzie wyswietla ile pytan bylo prawidlowych.
Jakies pomysly?
Geniesis
23.05.2016, 19:43:26
Trzymając się Twoich założeń:
1. Pytania, odpowiedzi najlepiej trzymać w bazie danych (daje Ci to większe możliwości).
Przykład (nazwy są dowolne):
tabela trzymająca podst. info o teście test_info:
id, name ....
tabela trzymająca dane, kto rozwiązał i podst. info user_info
id, quantity_points, user_id, date_start, date_end, test_info_id ....
Tabela z pytaniami question:
id, content, test_info_id, question_number
Tabela z odpowiedziami answer:
id, content, question_id right_answer
Tabela z danymi dla spec. testu user_answer:
id, question_id, answer_id, user_info_id
2. Sprawdzasz czy użyt. może rozwiązać, wejść na stronę itd.
3. Formularz:
w linku w parametrze podajesz id testu(test_info_id) + numer pytania(question_number)
sprawdzasz czy dane z GET są poprawne, jeżeli są to pobierasz dane z bazy i wstrzykujesz do formularza
pytanie 1:
tresc
<input value="answer_id" name="answer['question_id'][]">
button zawiera link do nast. pytania
4. Po naciśnieciu buttona sprawdzasz czy na pewno dane przychodzą poprawne, ew. przetwarzasz i zapisujesz do sesji
5. proces 2-4 powtarzasz aż do ost. pytania
6. Po ostatecznym potwierdzeniu: pobierasz wszystkie dane (form + sesja), walidujesz, jeżeli wszystko jest ok. dodajesz swoje parametry i zapisujesz w bazie, usuwasz sesje, ustawiasz jakiś param w db
by wiedzieć, że użytkownik już wypełnił i nie będzie mógł więcej.
7. Przekierowujesz i pokazujesz użyt. jego wynik
Pamiętaj by ZAWSZE sprawdzać dane wejściowe.