OOP form test
Hallo PHP vrienden,
ik ben bezig met een nieuw script voor de scriptlib. Zouden jullie even willen testen?
b.v.d. Jan
ik ben bezig met een nieuw script voor de scriptlib. Zouden jullie even willen testen?
b.v.d. Jan
Ik krijg:
Lijkt me goed?
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?
Klopt, die is okee.
Het hele gebeuren drijft op deze array:
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...
- de beruchte htmlentities($..., ENT_QUOTES) moet nog even over de tekstvelden.
- 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 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?
Judodudo? Die volg ik even niet ;-)
Checkboxen onthouden ben ik idd nog mee bezig.
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
Ziet er goed uit Jan! Ook je associatieve array die je als input gebruikt.
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...
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...
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?
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 ;)
Misschien handig om het label nog even klikbaar te maken bij de
checkboxen
checkboxen
Idd, de labels van de checkboxen doen het niet (zijn deaud in gsTaal).
'Kasper:
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 ;-)
Okee, tweede ronde voor het OOP formulier. Zouden jullie nog even willen testen?
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 ........?
Ik kon hem inderdaad ook al niet plaatsen...
Verder een kleinigheidje:
Verder een kleinigheidje:
Quote:
Het is een radiobutton, dus is er maar 1 optie mogelijk.Vink tenminste 1 van de opties bij "geslacht" aan
@ SanThe: dat je bijvoorbeeld met een plugin de waarden of namen van een formuliervelden verandert.
Edit:
Die bug komt van de select zie ik
Edit:
is inmiddels opgelost
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn




