Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa] tworzenie quizu
krzysiek_raven
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (0%)
-----


Witam,

Od jakiegoś czasu interesuję się programowaniem obiektowym i stworzyłem sobie klasę a właściwie to klasy do tworzenia quizów. Chciałbym abyście ocenili mój sposób programowanie obiektowego, czy idę w dobrą stronę.
Całość składa się z dwóch części: pierwsza klasa służy do konfiguracji quizu. Ustawia pytania i odpowiedzi i tworzy formularz. Druga służy do odbierania danych z formularza oraz wyświetla wybrane odpowiedzi.

Wszystko można przetestować na stronie: http://debczynski.pl/quiz/

Poniżej przesyłam kod:
http://wklej.org/id/148957/ - quiz.Kontroler.php
http://wklej.org/id/148958/ - quiz.Widok.php
http://wklej.org/id/148960/ - quiz.Model.php
http://wklej.org/id/148962/ - index.php

Napiszcie co sądzicie o tych klasach.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
drake88
post
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 15
Dołączył: 22.03.2009
Skąd: Bytów

Ostrzeżenie: (0%)
-----


jest błąd - jeśli nie odpowiem na wszystkie pytania, i wcisnę send wyświetla się długi kod na stronie

Kod
Array
(
    [0] => Array
        (
            [question] => Array
                (
                    [question] => 1. Pytanie pierwsze
                    [answersType] => checkbox
                    [answersName] => pyt_1
                )

            [answers] => Array
                (
                    [0] => Array
                        (
                            [answer] => Odp 1.1
                            [value] => 1
                            [checked] => 0
                        )

                    [1] => Array
                        (
                            [answer] => Odp 1.2
                            [value] => 2
                            [checked] => 1
                        )

                    [2] => Array
                        (
                            [answer] => Odp 1.3
                            [value] => 3
                            [checked] => 0
                        )

                    [3] => Array
                        (
                            [answer] => Odp 1.4
                            [value] => 4
                            [checked] => 1
                        )

                )

        )

    [1] => Array
        (
            [question] => Array
                (
                    [question] => 2. Pytanie drugie
                    [answersType] => radio
                    [answersName] => pyt_2
                )

            [answers] => Array
                (
                    [0] => Array
                        (
                            [answer] => Odp 2.1
                            [value] => 1
                            [checked] => 0
                        )

                    [1] => Array
                        (
                            [answer] => Odp 2.2
                            [value] => 2
                            [checked] => 0
                        )

                    [2] => Array
                        (
                            [answer] => Odp 2.3
                            [value] => 3
                            [checked] => 0
                        )

                    [3] => Array
                        (
                            [answer] => Odp 2.4
                            [value] => 4
                            [checked] => 0
                        )

                )

        )

    [2] => Array
        (
            [question] => Array
                (
                    [question] => 3. Pytanie trzecie
                    [answersType] => radio
                    [answersName] => pyt_3
                )

            [answers] => Array
                (
                    [0] => Array
                        (
                            [answer] => Odp 3.1
                            [value] => 1
                            [checked] => 0
                        )

                    [1] => Array
                        (
                            [answer] => Odp 3.2
                            [value] => 2
                            [checked] => 0
                        )

                    [2] => Array
                        (
                            [answer] => Odp 3.3
                            [value] => 3
                            [checked] => 1
                        )

                    [3] => Array
                        (
                            [answer] => Odp 3.4
                            [value] => 4
                            [checked] => 0
                        )

                )

        )

    [3] => Array
        (
            [question] => Array
                (
                    [question] => 4. Pytanie czwarte
                    [answersType] => checkbox
                    [answersName] => pyt_4
                )

            [answers] => Array
                (
                    [0] => Array
                        (
                            [answer] => Odp 4.1
                            [value] => 1
                            [checked] => 0
                        )

                    [1] => Array
                        (
                            [answer] => Odp 4.2
                            [value] => 2
                            [checked] => 0
                        )

                    [2] => Array
                        (
                            [answer] => Odp 4.3
                            [value] => 3
                            [checked] => 0
                        )

                    [3] => Array
                        (
                            [answer] => Odp 4.4
                            [value] => 4
                            [checked] => 0
                        )

                )

        )

)

Array
(
    [pyt_1] => Array
        (
            [0] => 2
            [1] => 4
        )

    [pyt_2] =>
    [pyt_3] => 3
    [pyt_4] =>
)


--------------------
Go to the top of the page
+Quote Post
krzysiek_raven
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (0%)
-----


To nie błąd. Jak wciśniesz debug mode on to wtedy pokazuje zawartość tablicy po wysłaniu formularza;)
Go to the top of the page
+Quote Post
bim2
post
Post #4





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Hmmm, wszystko fajnie ale nie pokazuje czy dobre odpowiedzi wybralem, a jak będą złe to które były dobre...


--------------------
Go to the top of the page
+Quote Post
krzysiek_raven
post
Post #5





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 28.09.2007

Ostrzeżenie: (0%)
-----


Jak na razie potrafi tylko wyświetlić wybrane odpowiedzi. Używałem tego aby wysłać te odpowiedzi na adres e-mail. Chce jeszcze zrobić coś w stylu "dokończ zdanie" i użytkownik by wpisywał treść w pole tekstowe, tylko jak narazie nie mam jeszcze na to pomysłu. No i potem na pewno przydalo by sie ustalanie które odpowiedzi są prawidłowe i przy wyświetlaniu by pokazywał czy sie dobrze odpowiedziało.
Co sądzicie o podziale MVC, czy dobrze rozumie tą ideę?

Ulepszyłem troche klase.
Teraz można między innymi dodawać pola tekstowe, można ustawiać które pola i pytania mają być wymagane oraz można dodać wyrażenie regularne przy definiowaniu pola tekstowego (wywoływana jest funkcja preg_ match()).
Całość można zdefiniować w łatwy sposób;)
Przykład:
http://wklej.org/id/152459/

Ten post edytował krzysiek_raven 19.09.2009, 19:56:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 21:21