Multiple choice class

Door Eric Cartman, 22 jaar geleden, 7.624x bekeken

Met deze multiple choice klasse kun je eventjes snel een vragenlijst (denk aan een quiz of een usability-test) in elkaar zetten. De klasse geeft als output overzichtelijke HTML die op de goede plaatsen inspringt.

Gebruik:
Het gebruik is eigenlijk heel simpel. Je kunt hem in een bestaand formulier integreren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[...]
<form action="verwerk.php" method="post" name="meten">

<?php

require_once('class.multiplechoice.php');

$lijst = new multipleChoice;

// De vragenlijst heeft een naam (titel) nodig:
$lijst->addTitle('Hoe lang...');

// We maken een categorie, de vragen gaan immers alleen over chinezen:
$lijst->addCategory('Chinezen');

// Ook heeft de vragenlijst een vraag met antwoorden nodig:
$lijst->addQuestion('... is een chinees?', array('1 meter', '2 meter', 'Goh...'));
$lijst->addQuestion('... is een chinese Loempia?', array('10 cm', '20 cm', 'Echt waar?'));

// De lijst kan ook verstuurd worden natuurlijk:
$lijst->addSubmit('verstuur', 'verstuur', 'class="submit"');

?>


</form>
[...]


Maar je kunt hem ook zelf een heel nieuw formulier aan laten maken. Dit doe je om de constructor (in tegenstelling tot daarnet) wél in te vullen met gegevens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
[...]

require_once('class.multiplechoice.php');

$multipleChoice = new multipleChoice('#');

$multipleChoice->addTitle('Meten');

$multipleChoice->addCategory('Lengte');
$multipleChoice->addQuestion('Hoe lang haar heeft Jip?', array('10 cm', '15 cm', 'Hij weet het zelf niet eens'));
$multipleChoice->addQuestion('Hoe lang zal een chinees zijn?');
$multipleChoice->addCategory('Breedte');

$multipleChoice->addQuestion('Hoe breed is monsieur Martens?', array('1 meter', '2 meter', 'Dat kon niet gemeten worden'));
$multipleChoice->addQuestion('Hoe breed is Jip zijn huis?', array('10 meter', '20 meter', 'Minder breed als monsieur Martens'));

$multipleChoice->close('verstuur', 'verstuur');

[...]

?>


Als iemand nog foutjes ontdekt, dan hoor ik het wel :c)

Voorbeeld: http://jerseyboy.je.funpic.de/class.multiplechoice/test.php

Gesponsorde koppelingen

PHP script bestanden

  1. multiple-choice-class

 

Er zijn 7 reacties op 'Multiple choice class'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Winston Smith
Winston Smith
22 jaar geleden
 
0 +1 -0 -1
Werkt var $form ook in PHP5? Ik dacht dat het in PHP5 alleen nog maar private, protected of public kon zijn?

Helaas echo je direct waarden in je klassefuncties, en retourneer je geen waarden. Dat komt de bruikbaarheid van je klasse niet ten goede :)
PHP erik
PHP erik
22 jaar geleden
 
0 +1 -0 -1
Het was erg vies van mij om in mijn table class echo's te gebruiken, maar ik hoop dat het nu niet een hype wordt. Je kunt beter alles in een var gooien en deze later constructen.

Verder een mooie class moet ik zeggen!

@Kasper
Volgens mij heb je gelijk.
Eric Cartman
Eric Cartman
22 jaar geleden
 
0 +1 -0 -1
Het werkt hier in ieder geval wel gewoon, maar dat is waarschijnlijk omdat PHP terugwaarts compatibel is..
Verder vond ik het zelf wel handig om alles te echo'en in plaats van in een variabele te gooien, aangezien er toch geen ingewikkelde constructies mee gemaakt kunnen worden.
Kijk bijvoorbeeld eens naar de methode addCategory of addTitle. Is het dan echt zo handig om dat terug te geven met return waarna je in je uiteindelijke programma er een echo voor moet zetten om hem ook echt te laten zien?
Dan lijkt het me toch handiger om de methode (eventueel uitvoer) in een variabele te zetten en áls het nodig is die te weergeven die te echo'en.

Maar verder gebruik ik wel altijd return in mijn klassen hoor :c)
Pim Vernooij
Pim Vernooij
22 jaar geleden
 
0 +1 -0 -1
Mooie klasse, maar wat is het voordeel t.o.v formhandler? (no offence)

FH Heeft ook nog database functionaliteit. Dit is ook alleen maar een dropdown menu, formhandler ondersteund alle typen formulieren.
Eric Cartman
Eric Cartman
22 jaar geleden
 
0 +1 -0 -1
Ehm, ik wilde graag alles zelf maken, ik ben soms (lees: altijd) een beetje eigenwijs... Ik wil graag voor elk specifiek formulier onderdeel een eigen klasse maken, die ik ook los kan gebruiken en daar is deze er eentje van...
Het komt er dus op neer dat deze klasse maar 1 specifiek doel heeft en (zoals je zelf min of meer ook al zegt) FormHandler te veel methoden en een te grote omvang heeft voor dit doel...
Verder zou je met deze klasse ook snel een dropdown-menuutje kunnen maken door simpelweg als vraag menu op te geven...
Wout van der Burg
Wout van der Burg
22 jaar geleden
 
0 +1 -0 -1
@Kasper, $form is van formhandler(.net) enwerkt ook op PHP4.. maar werkt ook geweldig met versie 5
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Robert Deiman
Robert Deiman
22 jaar geleden
 
0 +1 -0 -1
Ik krijg de volgende error (met de php 4 versie, lokaal draai ik 4.3)

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in e:\website\apopplewell.nl\english\quiz\quizclass.php on line 6

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. multiple-choice-class

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.