Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Test
Forum PHP.pl > Forum > Przedszkole
dawid6512
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
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.