[PHP] class betatesting, suggesties

Pagina: 1
Acties:

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
ik ben bezig met een class waarmee je met een paar simpele tags een submitform kan bouwen.
de gesubmitte data kan ook gechecked worden en in een db worden gestopt en ook geemailed als je dat wil.

ik maak dit omdat ik een beetje moe wordt van van altijd de hele formulier structuur na te moeten lopen als je een veldje wil toevoegen aanpassen.

maar, ik ben nu op een punt dat ik me afvraag of ik op de goede weg zit.
dus voordat ik doorga zou ik graag wat input willen want mischien is het op deze manier niet praktisch oid.

voorbeeldje van hoe het werkt:

stel, je hebt een db table met de velden: 'first name','sur_name' en 'pizza'

zet de volgende tags tussen je html file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
require ("form_class.php");
$a = new form_class($SCRIPT_FILENAME,'localhost','DB_un','DB_pw','DB','DB_table');
?>

<form:action set_action="insert" email="true" />

<form:property set_row_colors="00A6C8,4DC0C5" />
<form:property set_submit_button_on="true" />

<form:element name="First name" db_field="first_name" get_value="first_name" />
<form:element name="Sur name" db_field="sur_name" compulsory="true" />
<form:element name="Pizza topping" db_field="pizza" type="select" options="extra cheese,pepperoni,mushrooms" />

met een paar simpele regeltjes als hierboven wordt een kant en klaar form gegenereerd, inclusief field checks!

compulsory="true" houd in dat het een verplicht veld is

email="true" houd in dat de output ook automatisch wordt gemailed

je kan bv ook een email verificatie doen door emailcheck="true" aan de tag meetegeven.

"db_field" staat voor een veld in je db, waar dus de waarde wordt ge-insert die is gesubmit, dit veld moet dus wel bestaan in je database table.

voor "type" kan je alles invullen wat een geldig html element is,
dus: choice,select,textarea etc.

in de 2 voorbeeld files in de zip staan nog meer voorbeelden, inclusief kant en klare landen selectbox, die je zelf ook custom kan aanmaken.

ook kan je ipv set_action="insert" ook set_action="update" doen,
dan wordt automatisch alle waardes uit de db alvast ingevuld,
heel handig dus als je een 'profiel aanpassen' pagina wil maken.

wat nu nog een nadeel is dat je maar 1 form per pagina kan maken of je moet deze tags in een apparte file zetten en ipv $SCRIPT_FILENAME de file met de tags opgeven.
en het werkt dus nog alleeen met mysql.

als iemand het wil uitproberen:
http://www.devweb.nl/formclass/formtags.zip

enige voorwaarde is dat je php install wel zendoptimizer gebruikt.

en dit is niet een verzoek om mijn code natekijken maar om te kijken in hoeverre het bruikbaar is en wat evt anders zou moeten kwa gebruik.

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Kan de pagina niet vinden.
De pagina waarnaar u zoekt, is mogelijk verwijderd, tijdelijk niet beschikbaar of de naam ervan is gewijzigd.

--------------------------------------------------------------------------------

Probeer het volgende:

Controleer of het adres juist gespeld is als u het adres van de pagina in de adresbalk hebt getypt.

Open de introductiepagina www.devweb.nl en zoek naar koppelingen die verwijzen naar de informatie die u zoekt.
Klik op de knop Vorige als u een andere koppeling wilt proberen.
Klik op Zoeken als u naar informatie op het Internet wilt zoeken.



HTTP-fout 404 - Bestand niet gevonden
Internet Explorer

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
Op zaterdag 05 januari 2002 18:01 schreef Janoz het volgende:
Kan de pagina niet vinden.
De pagina waarnaar u zoekt, is mogelijk verwijderd, tijdelijk niet beschikbaar of de naam ervan is gewijzigd.

--------------------------------------------------------------------------------

Probeer het volgende:

Controleer of het adres juist gespeld is als u het adres van de pagina in de adresbalk hebt getypt.

Open de introductiepagina www.devweb.nl en zoek naar koppelingen die verwijzen naar de informatie die u zoekt.
Klik op de knop Vorige als u een andere koppeling wilt proberen.
Klik op Zoeken als u naar informatie op het Internet wilt zoeken.



HTTP-fout 404 - Bestand niet gevonden
Internet Explorer
noumoe?

keb het zolang ook maar ff ook hier neergezet:

http://www.xs4all.nl/~gilux/formtags.zip

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
weinig reacties,

komt dit mischien omdat het hele concept niet de moeite waard is of omdat ik het niet duidelijk uitleg waar ik het helemaal over heb?

of hangt iedereen int cafe :+

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 05 januari 2002 22:00 schreef GiLuX het volgende:
weinig reacties,

komt dit mischien omdat het hele concept niet de moeite waard is of omdat ik het niet duidelijk uitleg waar ik het helemaal over heb?

of hangt iedereen int cafe :+
Ik snap waar je het over hebt, maar pass toch maar ff wat meer informatie ;)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

leuk idee, maar het woord compulsory is vreselijk, de syntax is wellicht voor verbetering vatbaar bv:
code:
1
<form::select ..>

ipv form::element type='select', en het zou fijn zijn om bv te zeggen:
PHP:
1
2
3
<?
<input::select value='a,b,c,d' match='a||b||c||(a&amp;d)' default='a,b,d'>
?>

en
PHP:
1
2
3
<?
<input::text value='user@host.com' match='email'>
?>

waarbij je aangeeft waar het veld aan moet voldoen (in het laatste geval een email adres, maar ook bv. een datum, of een andere standaard regexp...)

have fun :P

Ook de mogelijkheid om een form over meerdere pages te splitsen vanuit 1 php-file dmv
PHP:
1
2
3
<?
<form::page></form::page>
?>

zou heel l33t zijn :)

Klaar voor een nieuwe uitdaging.


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
hoe heb je die tags eigenlijk gemaakt? :?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

wat ik dus vooral probeer te zeggen :) is:
je syntax zuigt hondenoten, maar je idee is wel heel kewl. Het is nu inconsistent, neem eens een voorbeeld aan bv java-benamingen, die zijn zo belachelijk consistent dat je er moe van word :P

Je bent wel met iets leuks bezig :) maar andere mensen zullen na een kwartier tenenkrommend bezig te zijn geweest het bijltje erbij neergooien terwijl je hier wel de potentie voor een hele leuke tool hebt liggen...

Klaar voor een nieuwe uitdaging.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

btw die 2 countries_*.php files zien er echt VRESELIJK uit :)

Klaar voor een nieuwe uitdaging.


Verwijderd

Op zondag 06 januari 2002 21:21 schreef chem het volgende:
btw die 2 countries_*.php files zien er echt VRESELIJK uit :)
His Style, altijd de beste style om de code te lezen (in zijn geval ;))

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

chem: neem eens een voorbeeld aan bv java-benamingen, die zijn zo belachelijk consistent dat je er moe van word..


hahahaha :D

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
poehee,
heb een manualtje geschreven.

http://www.devweb.nl/formclass/index.php

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Ik heb het verder niet bekeken, maar kijk een s naar de XForms standaard. 't lijkt me nl. dat je die hier best in toe kan passen en dan heb je het meteen mooi universeel (en ben je naar mijn weten de eerste die XForms geïmplementeerd heeft in php ;) )

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
Op dinsdag 08 januari 2002 14:27 schreef freak007 het volgende:
Ik heb het verder niet bekeken, maar kijk een s naar de XForms standaard. 't lijkt me nl. dat je die hier best in toe kan passen en dan heb je het meteen mooi universeel (en ben je naar mijn weten de eerste die XForms geïmplementeerd heeft in php ;) )
eej,
dat is grappig,
die hebben mijn idee gepikt ;)

heb je hier wel eens mee gewerkt?

het is in princiepe wel te doen maar ik vraag me af waar je html opmaak blijft, dat zie ik er niet zo snel in terug,
hoe lost dit bv een iteration binnen een table op?

een van de voorwaarde van dat Xforms is dat het makkelijk is om naar over te stappen,
dus zo laag drempellig als mogelijk voor de gemiddelde web devver.
echter hun syntax lijkt zeer sterk op een soort verbasterd xml waar mijn oplossing toch nog een stuk meer op good old html lijkt.

maar goed,
ik zal zien wat ik er mee kan,
best interessante tip,
tnx!

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


Verwijderd

hoe handel je de tags nu af, ga je er met regular expressions overheen, of behandel je het als xml?
edit:

sorry, zag de werkende link naar het script niet, even bekijken

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 12:34

TheDane

1.618

misschien een stomme vraag, (heb ook nog niet naar je script gekeken verder) maar is dit niet +/- net zoveel werk als gewoon een form in html prutsen ?

wat is de toegevoegde waarde van 't script ?

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op dinsdag 08 januari 2002 15:17 schreef GiLuX het volgende:
eej,
dat is grappig,
die hebben mijn idee gepikt ;)
hehe, waarschijnlijk waren ze wel iets eerder :)
heb je hier wel eens mee gewerkt?
nee, want er zijn nog bijna geen implementaties van. Ik heb wel ooit met iemand zitten fantaseren over een XForm module voor php, die alles ook keurig server-side zou valideren, zodat je er met je scripts niets meer mee te maken hebt.
het is in princiepe wel te doen maar ik vraag me af waar je html opmaak blijft, dat zie ik er niet zo snel in terug,
hoe lost dit bv een iteration binnen een table op?
Op zich zou je XForms moeten zien als vervanging voor de houdige manier van forms op het internet. XForms zijn een heel stuk generieker, omdat de presentatie en de informatie veel beter gescheiden is.

Doordat je de presentatie direct aangeeft, is het niet meer zo html gebonden en kunnen voicebrowser er ook beter mee overweg straks
een van de voorwaarde van dat Xforms is dat het makkelijk is om naar over te stappen,
dus zo laag drempellig als mogelijk voor de gemiddelde web devver.
echter hun syntax lijkt zeer sterk op een soort verbasterd xml waar mijn oplossing toch nog een stuk meer op good old html lijkt.
Het is geen verbasterd xml, het is gewoon xml ;) Dat maakt het parsen van pagina's nu eenmaal iets makkelijker, omdat er genoeg xml-parsers zijn voor de verschillende programmeertalen.
maar goed,
ik zal zien wat ik er mee kan,
best interessante tip,
tnx!
het was idd. niet meer dan een tip. Misschien dat je delen kan overnemen, zodat je ook vast kan wennen aan XForms en je er later, wanneer het implementaties heeft, al in thuis bent.

Die XForms data kan je nu toch nog niet naar de browser opsturen, want die begrijpt er toch nog niets van.

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
Op dinsdag 08 januari 2002 15:41 schreef TheDane het volgende:
misschien een stomme vraag, (heb ook nog niet naar je script gekeken verder) maar is dit niet +/- net zoveel werk als gewoon een form in html prutsen ?

wat is de toegevoegde waarde van 't script ?
dat het mij weer even van de straat houdt ;)

but seriously,

1 - je kan nu in 5 regels een form bouwen inclusief field checks dat automatisch naar je database/email wordt gesubmit.

2 - je kan je code van je html scheiden,
nog niet helemaal, maar er wordt aan gewerkt.
het is nu zo dat je in feite de opmaak van je form (die in een <table> zit) regelt door bv te doen:

<form:property set_row_colors="#333333,#555555" set_table_width="600" set_table_border="1" />

ik maak het nu zo dat dit nog steeds kan maar dat het ook mogelijk is om zo gewoon zo te doen:

<table>
<tr><td>
<form:element name="First name" db_field="first_name" get_value="first_name" />
</td></tr>
<tr><td>
<form:element name="email" db_field="email" compulsory="true" emailcheck="true" />
</td></tr>
</table>


3 - ben nu bezig om dit te bewerkstelligen:

<useclass:myclass new="true" params="" />
<useclass:myclass set_something="bla,bli" />
<useclass:myclass get_something_else="" />

wordt:

require("myclass.php");
$myclass = new myclass();
$myclass->set_something(bli,bla);
$myclass->get_something_else();

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 12:34

TheDane

1.618

Op dinsdag 08 januari 2002 16:06 schreef GiLuX het volgende:

[..]

dat het mij weer even van de straat houdt ;)

but seriously,

1 - je kan nu in 5 regels een form bouwen inclusief field checks dat automatisch naar je database/email wordt gesubmit.

2 - je kan je code van je html scheiden,
nog niet helemaal, maar er wordt aan gewerkt.
het is nu zo dat je in feite de opmaak van je form (die in een <table> zit) regelt door bv te doen:

<form:property set_row_colors="#333333,#555555" set_table_width="600" set_table_border="1" />

ik maak het nu zo dat dit nog steeds kan maar dat het ook mogelijk is om zo gewoon zo te doen:

<table>
<tr><td>
<form:element name="First name" db_field="first_name" get_value="first_name" />
</td></tr>
<tr><td>
<form:element name="email" db_field="email" compulsory="true" emailcheck="true" />
</td></tr>
</table>


3 - ben nu bezig om dit te bewerkstelligen:

<useclass:myclass new="true" params="" />
<useclass:myclass set_something="bla,bli" />
<useclass:myclass get_something_else="" />

wordt:

require("myclass.php");
$myclass = new myclass();
$myclass->set_something(bli,bla);
$myclass->get_something_else();
hmm, een soort van custom template achtig engine systeem (dus) toch ? :)

maar voor opmaak heb je css, en voor template achtige dingen heb je 'echte' template engines. . die ook prima code/data scheiden ..

maar verder wel leuk, kan best iets worden denk ik
Pagina: 1