OOP form test
Hallo PHP vrienden,
Lijkt me goed? Ik krijg:
Het hele gebeuren drijft op deze array:
Klopt, die is okee.
- Ik doe aan 'judodudo', wat blijkbaar gewoon kan ^^
- en hij onthoudt de checkboxen nog niet, maar daar was je al mee bezig.
- misschien is het wel prettig om ook in de andere teksten even de naam van het veld dikgedrukt te maken, dat scant makkelijker. En aangezien bijna alle tekst op internet gescand wordt - lezen kost veel te veel tijd in deze maatschappij, waar moet het heen met de wereld! - is dat wel prettig :)
Ik heb nog niets geprobeerd met nulbytes en andere character-set-naaistreken, maar ik heb niet echt het idee dat PHP daar gevoelig voor is op deze manier. - de beruchte htmlentities($..., ENT_QUOTES) moet nog even over de tekstvelden.
Checkboxen onthouden ben ik idd nog mee bezig.
Judodudo? Die volg ik even niet ;-)
De waardes zijn dus gewoon te veranderne
Echter nog wel een kleine opmerking:
Bij het instantiëren van je "formelement" gebruik je nu een constante REQUIRED en NOT_REQUIRED. Omdat deze specifiek voor deze klasse is zou ik er een publieke klasse constante van maken. Je zal hem tenslotte nergens anders gebruiken... Ziet er goed uit Jan! Ook je associatieve array die je als input gebruikt. very nice :) ik heb nog een bugs kunnen vinden, behalve dan dat je alle waarden enzo kunt aanpassen, maarja. misschien kun je ook zorgen dat je bij een checkbox, select of radio ook checked/selected kunt kiezen?
Zie bijv. de Firefox-extensie TamperData, daarmee is eea mogelijk.
checkboxen Misschien handig om het label nog even klikbaar te maken bij de
Idd, de labels van de checkboxen doen het niet (zijn deaud in gsTaal).
Op die fiets ja. De bedoeling van deze klasse is eigenlijk integratie in een CMS, dus dan zit hij achter een login.
Wat is dat ........?
Verder een kleinigheidje:
Ik kon hem inderdaad ook al niet plaatsen...
@ SanThe: dat je bijvoorbeeld met een plugin de waarden of namen van een formuliervelden verandert.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Array
(
[naam] => Test
[adres] => Kalvestraat 12
[woonplaats] => Koe
[nieuwsbrief] => nieuwsbrief_ontvangen
[fruit] => appel
[vechtsporten] => Array
(
[0] => judo
[1] => karate
[2] => kungfu
)
[voorwaarden] => voorwaarden
)
(
[naam] => Test
[adres] => Kalvestraat 12
[woonplaats] => Koe
[nieuwsbrief] => nieuwsbrief_ontvangen
[fruit] => appel
[vechtsporten] => Array
(
[0] => judo
[1] => karate
[2] => kungfu
)
[voorwaarden] => voorwaarden
)
Lijkt me goed?
Edit:
Even wat achtergrondinfo:
Het hele gebeuren drijft op deze array:
Code (php)
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
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
<?php
$formelements = array (
'naam' => new formelement ('naam', 'naam', 'text', '', REQUIRED),
'adres' => new formelement ('adres', 'adres', 'text', '', NOT_REQUIRED),
'woonplaats' => new formelement ('woonplaats', 'woonplaats', 'text', '', REQUIRED),
'nieuwsbrief' => new formelement ('nieuwsbrief', 'nieuwsbrief', 'checkbox', array (
'nieuwsbrief_ontvangen' => 'ik wil de nieuwsbrief ontvangen'
), NOT_REQUIRED),
'fruit' => new formelement ('fruit', 'fruit', 'select', array (
'appel' => 'appel',
'peer' => 'peer',
'banaan' => 'banaan',
'citroen' => 'citroen',
'sinaasappel' => 'sinaasappel'
), REQUIRED),
'vechtsporten' => new formelement ('vechtsporten', 'vechtsporten', 'checkbox_array', array (
'judo' => 'ik doe aan judo',
'karate' => 'ik zit op karate',
'kungfu' => 'ik beoefen kung fu'
), REQUIRED),
'voorwaarden' => new formelement ('voorwaarden', 'voorwaarden', 'checkbox', array (
'voorwaarden' => 'ik ben akkoord met de voorwaarden'
), REQUIRED),
'verzenden' => new formelement (false, false, 'submit', 'verzenden')
);
?>
$formelements = array (
'naam' => new formelement ('naam', 'naam', 'text', '', REQUIRED),
'adres' => new formelement ('adres', 'adres', 'text', '', NOT_REQUIRED),
'woonplaats' => new formelement ('woonplaats', 'woonplaats', 'text', '', REQUIRED),
'nieuwsbrief' => new formelement ('nieuwsbrief', 'nieuwsbrief', 'checkbox', array (
'nieuwsbrief_ontvangen' => 'ik wil de nieuwsbrief ontvangen'
), NOT_REQUIRED),
'fruit' => new formelement ('fruit', 'fruit', 'select', array (
'appel' => 'appel',
'peer' => 'peer',
'banaan' => 'banaan',
'citroen' => 'citroen',
'sinaasappel' => 'sinaasappel'
), REQUIRED),
'vechtsporten' => new formelement ('vechtsporten', 'vechtsporten', 'checkbox_array', array (
'judo' => 'ik doe aan judo',
'karate' => 'ik zit op karate',
'kungfu' => 'ik beoefen kung fu'
), REQUIRED),
'voorwaarden' => new formelement ('voorwaarden', 'voorwaarden', 'checkbox', array (
'voorwaarden' => 'ik ben akkoord met de voorwaarden'
), REQUIRED),
'verzenden' => new formelement (false, false, 'submit', 'verzenden')
);
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Ziet er goed uit, dan geen fouten ontdekken...
- Ik doe aan 'judodudo', wat blijkbaar gewoon kan ^^
- en hij onthoudt de checkboxen nog niet, maar daar was je al mee bezig.
- misschien is het wel prettig om ook in de andere teksten even de naam van het veld dikgedrukt te maken, dat scant makkelijker. En aangezien bijna alle tekst op internet gescand wordt - lezen kost veel te veel tijd in deze maatschappij, waar moet het heen met de wereld! - is dat wel prettig :)
Ik heb nog niets geprobeerd met nulbytes en andere character-set-naaistreken, maar ik heb niet echt het idee dat PHP daar gevoelig voor is op deze manier.
Ik zie dat je als label dezelfde waarde gebruikt als voor het id/name van je input veld. Zou je niet een extra paramter accepteren waarmee je de label kunt specificeren?
Checkboxen onthouden ben ik idd nog mee bezig.
Edit:
@ Blanche: is inderdaad een goeie toevoeging, tnx
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Array
(
[naam] => Remco
[adres] =>
[woonplaats] => breda
[fruit] => appel
[vechtsporten] => Array
(
[0] => schaapsport
)
[voorwaarden] => voorwaarden
)
(
[naam] => Remco
[adres] =>
[woonplaats] => breda
[fruit] => appel
[vechtsporten] => Array
(
[0] => schaapsport
)
[voorwaarden] => voorwaarden
)
De waardes zijn dus gewoon te veranderne
Echter nog wel een kleine opmerking:
Bij het instantiëren van je "formelement" gebruik je nu een constante REQUIRED en NOT_REQUIRED. Omdat deze specifiek voor deze klasse is zou ik er een publieke klasse constante van maken. Je zal hem tenslotte nergens anders gebruiken...
Gewijzigd op 01/01/1970 01:00:00 door Douwe
Quote:
Ik neem aan dat Jelmer bedoelt dat hij de POST-waardes kan veranderen, en dat er dus ook een controle zou moeten zijn op de invoer van checkboxen en selects.Judodudo? Die volg ik even niet ;-)
Zie bijv. de Firefox-extensie TamperData, daarmee is eea mogelijk.
Ziet er leuk uit. Misschien kun je nog maxlengths instellen op de naam enzo, en dan bij het verwerken wel even gelijk substr er overheen halen ;)
checkboxen
Kasper schreef op 19.01.2008 10:35:
Zie bijv. de Firefox-extensie TamperData, daarmee is eea mogelijk.
Quote:
Ik neem aan dat Jelmer bedoelt dat hij de POST-waardes kan veranderen, en dat er dus ook een controle zou moeten zijn op de invoer van checkboxen en selects.Judodudo? Die volg ik even niet ;-)
Zie bijv. de Firefox-extensie TamperData, daarmee is eea mogelijk.
Op die fiets ja. De bedoeling van deze klasse is eigenlijk integratie in een CMS, dus dan zit hij achter een login.
Edit:
@ de rest: bedankt voor de tips. Een aantal staat op mijn TODO lijst.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
De aangevinkte checkboxes worden niet onthouden wanneer er een fout optreed, terwijl dat bij de andere velden wel gebeurt, zou het niet intuitiever zijn als dat bij de checkboxes ook gebeurt?
@ Arend: die staat idd ook op de lijst, maar vandaag kom ik nergens aan toe in verband met een multidisciplinaire presentatie op het centrum voor de kunsten waar ik werk ;-)
OOP formulier. Zouden jullie nog even willen testen?
Okee, tweede ronde voor het Edit:
Nog even de initialisatie-array:
Code (php)
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
27
28
29
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
27
28
29
$formelements = array (
'naam' => new formelement ('naam', 'naam', 'text', '', REQUIRED),
'adres' => new formelement ('adres', 'adres', 'text', '', NOT_REQUIRED),
'woonplaats' => new formelement ('woonplaats', 'woonplaats', 'text', '', REQUIRED),
'nieuwsbrief' => new formelement ('nieuwsbrief', 'nieuwsbrief', 'checkbox', array (
'nieuwsbrief_ontvangen' => 'ik wil de nieuwsbrief ontvangen'
), NOT_REQUIRED),
'fruit' => new formelement ('fruit', 'fruit', 'select', array (
'appel' => 'appel',
'peer' => 'peer',
'banaan' => 'banaan',
'citroen' => 'citroen',
'sinaasappel' => 'sinaasappel'
), REQUIRED),
'vechtsporten' => new formelement ('vechtsporten', 'vechtsporten', 'checkbox_array', array (
'judo' => 'ik doe aan judo',
'karate' => 'ik zit op karate',
'kungfu' => 'ik beoefen kung fu'
), REQUIRED),
'geslacht' => new formelement ('geslacht', 'geslacht', 'radio_array', array (
'man' => 'mannelijk',
'vrouw' => 'vrouwelijk',
'weetniet' => 'weet niet'
), REQUIRED),
'voorwaarden' => new formelement ('voorwaarden', 'voorwaarden', 'checkbox', array (
'voorwaarden' => 'ik ben akkoord met <a href="oopform_voorwaarden.php" title="Lees de voorwaarden">de voorwaarden</a>'
), REQUIRED),
'verzenden' => new formelement (false, false, 'submit', 'verzenden')
);
'naam' => new formelement ('naam', 'naam', 'text', '', REQUIRED),
'adres' => new formelement ('adres', 'adres', 'text', '', NOT_REQUIRED),
'woonplaats' => new formelement ('woonplaats', 'woonplaats', 'text', '', REQUIRED),
'nieuwsbrief' => new formelement ('nieuwsbrief', 'nieuwsbrief', 'checkbox', array (
'nieuwsbrief_ontvangen' => 'ik wil de nieuwsbrief ontvangen'
), NOT_REQUIRED),
'fruit' => new formelement ('fruit', 'fruit', 'select', array (
'appel' => 'appel',
'peer' => 'peer',
'banaan' => 'banaan',
'citroen' => 'citroen',
'sinaasappel' => 'sinaasappel'
), REQUIRED),
'vechtsporten' => new formelement ('vechtsporten', 'vechtsporten', 'checkbox_array', array (
'judo' => 'ik doe aan judo',
'karate' => 'ik zit op karate',
'kungfu' => 'ik beoefen kung fu'
), REQUIRED),
'geslacht' => new formelement ('geslacht', 'geslacht', 'radio_array', array (
'man' => 'mannelijk',
'vrouw' => 'vrouwelijk',
'weetniet' => 'weet niet'
), REQUIRED),
'voorwaarden' => new formelement ('voorwaarden', 'voorwaarden', 'checkbox', array (
'voorwaarden' => 'ik ben akkoord met <a href="oopform_voorwaarden.php" title="Lees de voorwaarden">de voorwaarden</a>'
), REQUIRED),
'verzenden' => new formelement (false, false, 'submit', 'verzenden')
);
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Quote:
Er is getamperd met de veldwaarden .........
Wat is dat ........?
Verder een kleinigheidje:
Quote:
Het is een radiobutton, dus is er maar 1 optie mogelijk.Vink tenminste 1 van de opties bij "geslacht" aan
Edit:
Die bug komt van de select zie ik
Edit:
is inmiddels opgelost
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn