![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Czy ktoś ma pomysł jak wykonać szablon wynikowy z formularza ze 180 pytaniami, są zawsze 4 odpowiedzi A, B, C, D tylko jedna odpowiedź prawidłowa typu radio, trzy odpowiedzi są nieprawidłowe. Chodzi mi głównie jak wygenerować automatycznie te kwadraciki po zaznaczeniu radio odpowiedniej odpowiedzi A, B, C lub D? (IMG:http://fotofantazja.art.pl/images/template_email.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 9.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Gdy ja pisałem coś takiego (tylko była możliwość więcej niż jednej poprawnej odpowiedzi) to w zapleczu porównywałem id wybranych odpowiedzi z id poprawnych odpowiedzi. W tym przypadku można zrobić podobnie, będzie nawet prościej bo wystarczy porównywać z jedną wartością a nie całą tablicą.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz podpowiedzieć jak to zrobiłeś i rzucić przykładowy kod z wystylizowaniem jednej grupy radio z zaznaczeniem? Szukam na ten temat w sieci ale nie mogę znaleźć.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Jaki format wejściowy danych?
Jaki format wyjściowy - czyli sposób prezentacji? (tabela w html, obraz?) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Format wejściowy czyli jak rozumiem chodzi Ci to co mam w kodzie formularza? Dla jednego pytania z 4 odpowiedziami radio dałem takie przykładowe pytanie:
Chyba prościej będzie zaprezentować format wyjściowy w tabeli Ten post edytował sylwekb 31.08.2016, 11:48:00 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 10 Dołączył: 24.04.2015 Ostrzeżenie: (0%) ![]() ![]() |
na szybko przygotowałem coś takiego, jak ci bedzie odpowiadal to jeszcze dopracujemy i uproscimy troche. Jak cos to wyjasnie jak ja bym rozwiazal sprawe z pytaniami (dość prosto).
http://textuploader.com/58uqj -> przetestuj kod na przykład na http://phpfiddle.org |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za kod ale trochę nie o to chodzi
Może opiszę scenariusz wykonania formularza typu multipage - testu poziomującego z języka polskiego z obowiązkiem zaznaczenia radio na stronie, który już mam przygotowany w Joomla 3.6.2, komponent Chronoforms do tworzenia formularzy http://fotofantazja.art.pl/testpoziomujacy...est-poziomujacy 1. Strona podanie danych osobowych 2-19 Strony testu - na każdej stronie jest po 10 pytań czyli w sumie 180 pytań wszystkie z obowiązkiem zaznaczenia, 4 odpowiedzi typu radio, zawsze jedna prawidłowa, 3 nieprawidłowe. Na każdej z tych stron musi być możliwość kontynuacji testu lub wysłania testu. Na e-mail wysyłana wiadomość w postaci html z zaznaczonymi kwadracikami / odpowiedziami na poszczególne 180 pytań oraz podanie poziomu do którego się zakwalifikował np A0. Czy można w przypadku odpowiedzi prawidłowych ustawić jakiś ptaszek, a dla nieprawidłowych odpowiedzi np X? Czy można do niego dostosować Twój szablon oraz dołączyć funkcjonalność liczenia sumy punktów jak na powyżej przedstawionym zrzucie i przydzielenia wraz z ilością uzyskanych punktów do odpowiedniej grupy poziomu wg poniższego schematu? SPRAWDZANIE TESTU Na każdy trymestr przypada 10 pytań. Wypełniający formularz musi mieć 6 poprawnych odpowiedzi aby uznać trymestr za zaliczony. POZIOM PYTANIA A0 1-10 strona 2 formularza multipage A1-1 11-20 strona 3 formularza multipage A1-2 21-30 strona 4 formularza multipage A1-3 31-40 strona 5 formularza multipage A2-1 41-50 strona 6 formularza multipage A2-2 51-60 strona 7 formularza multipage A2-3 61-70 strona 8 formularza multipage B1-1 71-80 strona 9 formularza multipage B1-2 81-90 strona 10 formularza multipage B1-3 91-100 strona 11 formularza multipage B2-1 101-110 strona 12 formularza multipage B2-2 111-120 strona 13 formularza multipage B2-3 121-130 strona 14 formularza multipage B2-4 131-140 strona 15 formularza multipage C1-1 141-150 strona 16 formularza multipage C1-2 151-160 strona 17 formularza multipage C1-3 161-170 strona 18 formularza multipage C1-4 171-180 strona 19 formularza multipage Jedna wątpliwość - czy możemy tak zabezpieczyć ten skrypt, by osoba, która np. przez 17 zakładek nie odpowie poprawnie na żadne pytanie, a na 18 zakładce będzie miała wszystkie odpowiedzi poprawne nie została zakwalifikowana jako C1.4? Jednym słowem czy istnieje możliwość dodatkowego warunku który polegałbym na tym, że: np. na trzeciej stronie mam 7 odpowiedzi dobrych - awansuje na kolejny poziom (spełniam warunek: >5) o ile na poprzedniej zakładce miałem >5 poprawnych odpowiedzi? pewnie to mało prawdopodobne, by ktoś robił byki w prostych pytaniach, a był geniuszem w trudnych, niemniej można by ewentualnie rozważyć czy istnieje możliwość takiego zabezpieczenia. Mam nadzieję, że teraz jasno wszystko opisałem. Proszę spojrzeć czy moglibyśmy zastosować dla poszczególnych podstron sumowanie i przydzielanie dla poszczególnych poziomów?
Masz pomysł jak dokładnie zrobić coś takiego? Ten post edytował sylwekb 31.08.2016, 14:35:16 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 10 Dołączył: 24.04.2015 Ostrzeżenie: (0%) ![]() ![]() |
OK. Może od początku. Ja bym zrobił tak:
W bazie danych (między innymi byłyby kolumny: pytanie, odpowiedz1, odpowiedz2, odpowiedz3, odpowiedz_prawidlowa). Przy załadowaniu strony/trymestu na przykład pierwsza strona/trymestr chcę aby mi wyciągnął pierwsze dziesięć czyli na przykład: select * from pytania LIMIT 0, 10 ORDER BY id DESC (to tylko przykład) teraz bym zastosował while`a i zmieszał pytania do każdej odpowiedzi ale zapisując prawidłowe odpowiedzi w takim ciągu na przykład: ABCADBCACD i to zapisał na przykład w sesji czy ciastkach i po zatwierdzeniu zbierasz odpowiedzi z dziesięciu pytań czyli znow będziesz miał ciąg dziesięciu liter (chyba że nie zablokujesz tej możliwości) i teraz whilem bym porównał litery pierwsza do pierwszej, drugą do drugiej itd itp; zmienna na przykład błąd definiujesz na 0 i każda porównana pozytywnie litera to + a negatywna to - w taki sposób będziesz miał ile prawidłowych odpowiedzi jest i w ten sposób też nie bedzie możliwości ściągania |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Z założeniem kolumn w bazie danych nie będzie problemu ale z napisaniem tego kodu to dla mnie jest czarna magia.
Ten post edytował sylwekb 1.09.2016, 12:53:07 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 10 Dołączył: 24.04.2015 Ostrzeżenie: (0%) ![]() ![]() |
jeśli odpowiada ci moj tok myślenia to mogę wieczorem posiedzieć i napisac co nieco
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo bym prosił. Czy spojrzałeś na projekt pytań i odpowiedzi zamieszczonych w linku? Jeśli potrzeba to dam Ci dostęp do panelu administracyjnego CMS-a i warstwy programistycznej gdzie się zamieszcza skrypty żeby wszystko było spójne z tymi pytaniami jeśli tak się da zrobić? W zasadzie pytania i odpowiedzi z testu się nie zmienią tylko została najtrudniejsza rzecz czyli sprawdzanie i przydzielanie do grup oraz ten szablon z kwadracikami i przydzieleniem do grupy np A0, A.1.1. itp, który ma być wysyłany na e-mail jako potwierdzenie wypełnienia i do admina.
Jeszcze napisz jakie założyć tabele i kolumny w phpmyadminie jeśli potrzeba. Czy tylko te które napisałeś czy jeszcze jakieś? Ten post edytował sylwekb 1.09.2016, 15:19:25 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 10 Dołączył: 24.04.2015 Ostrzeżenie: (0%) ![]() ![]() |
czy taki test bedzie mozna wypelnic tylko raz i czy bedą rozne zestawy pytań?
jesli jeden zestaw to bym stworzyl dwie tabele, jedną z pytaniami/odpowiedziami (na przykład: pytanie, odpowiedzNiepoprawna1, odpowiedzNiepoprawna2, odpowiedzNiepoprawna3, odpowiedzPoprawna) a druga tabela powinna chyba zawierać użytkowników i zdobyte punkty czyli na przykład: imię, nazwisko, punktyZaTrymestr1, dataWypelnieniaTestuTrymestr1, itd itp - w zależności co potrzebujesz i na przykład puste pole w punktyZaTrymestr1 będzie oznaczało że użytkownik nie brał udziału jeszcze w tym trymestrze lub jeśli będzie liczba/cyfra z punktami to znaczy że brał udział. Czy użytkownik będzie mógł powtórzyć test? czy użytkownik będzie mógł przejść do dalszego trymestru bez rozwiazania poprzedniego? ja nie chce żadnych haseł, jak stworzysz tabele to mi screena pokaz na priv a ja co niego przygotuje i wyjaśnie ci jak działa, jak zainstalować żebyś za bardzo nie szedł na łatwizne bo się niczego nie nauczysz (IMG:style_emoticons/default/smile.gif) Ten post edytował mariolita 1.09.2016, 15:51:47 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 12.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
To będzie tylko jeden zestaw pytań wypełniany raz. Wszystkie 180 pytań podzielone na 18 stron już jest typu multipage. Jak może zauważyłeś na stronie to jest formularz typu multipage z możliwością wysłania zakończenia zaznaczania na kążdym poziomie chyba, że tak nie można to dopiero na koniec formularza multipage,
1 strona dane osobowe, potem 18 stron po 10 pytań na stronie, 4 odpowiedzi do wyboru, jedna prawidłowa 3 nieprawidłowe. Każda strona odpowiada kolejnemu poziomowi od A0 itp jak podałem wcześniej to się nie zmienia. Aby zaliczyć każdą stronę czyli poziom inaczej trymestr trzeba uzyskać minimum 6 pkt aż do końca formularza. Czyli punkty 1-5 nie zalicza poziomu, 6-10pkt zalicza. Każda prawidłowa odpowiedź 1 pkt, nieprawidłowa 0 pkt. Wszystkie radio mam walidowane więc każdy powinien coś zaznaczyć nawet jeśli zaznaczy nieprawidłową odpowiedź. Za chwilę zakładam tabele i podeślę screen czy tak może być. I najważniejsze jak wymienić dane między poszczególnymi stronami multipage formularza aby pamiętało i sumowało, że poprzedni trymestr został wypełniony? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:44 |