Reacties op het script Formulieren class V0.8
|
Gepost op: 22 november 2004 - 18:30 |
|
|
|
Crew algemeen
|
Hmmz, het voorbeeld knoppie komt er bij mij niet te staan...
Dus voor de zekerheid hier nog maar een keer het voorbeeld-linkje:
http://rensjuh..../index.php
Mzzls,
Rensjuh |
|
|
|
Gepost op: 22 november 2004 - 21:31 |
|
|
|
Moderator
|
Waar zijn makeSelect en makeRadio ?
Beide methoden zouden een array als parameter kunnen bevatten, met hierin bij makeSelect array-keys voor de values van de options en array-values voor de teksten tussen de <option></option> tags, en bij makeRadio array-keys voor de value's van de radiobuttons en de array-values voor de begeleidende teksten bij de buttons, en ook een parameter voor een default selected option ? |
|
|
|
Gepost op: 22 november 2004 - 21:41 |
|
|
|
Crew algemeen
|
De makeSelect en makeRadio komen er aan.
Zoals ik al zei: Hij is in ontwikkeling
Ik ben hem nu verder aan het ontwikkelen (ook voor eigen gebruik) en zal de nieuwere versie zo snel mogelijk hier posten als hij werkt.
Mzzls,
Rensjuh
[edit]
Nieuwere versie, nu zijn er de makeSelect, makeRadio én makeCheckBox aan toegevoegd.
Heel simpel in gebruik
<?PHP
$sValue = array();
$sValue[0] = "Hallo";
$sValue[1] = "Hoi";
$sValue[2] = "Hai";
$cForm->makeSelect("Select", "select", $sValue);
echo "<BR>";
$cForm->makeRadio("Radio", "radio", $sValue);
echo "<BR>";
$cForm->makeCheckBox("Checkbox", "check", $sValue);
echo "<BR>";
?>
<?PHP $sValue[0] = "Hallo"; $sValue[1] = "Hoi"; $sValue[2] = "Hai"; $cForm->makeSelect("Select", "select", $sValue); $cForm->makeRadio("Radio", "radio", $sValue); $cForm->makeCheckBox("Checkbox", "check", $sValue); ?>
|
|
|
|
Gepost op: 22 november 2004 - 22:52 |
|
|
|
PHP gevorderde
|
Een leuk stukje code, maar ik zou niet alle methoden gelijk laten echo'en. Als je een iets groter project hebt waarbij je dit soort dingen toepast worden ook vaak template-engines gebruikt (smarty, templatepower ed.) dat kan dan de boel erg verklooten. Het is ook niet echt de bedoeling van een klasse om alles gelijk te laten zien, verder wel een leuk stukje code. |
|
|
|
Gepost op: 23 november 2004 - 13:01 |
|
|
|
Moderator
|
Als het script in ontwikkeling is, waarom post je het dan?
Een script moet af en getest zijn, aan (niet-werkende) halfprodukten hebben we niets. |
|
|
|
Gepost op: 23 november 2004 - 14:41 |
|
|
|
Crew algemeen
|
Niet echt in zo'n soort ontwikkeling, het is wel af, maar er kunnen nog wel nieuwe dingen bijkomen, net zoals nu met de checkbox, radio butten en de select...
Deze versie van het script is af, en getest én het werkt...
Mzzls,
Rensjuh |
|
|
|
Gepost op: 02 april 2005 - 22:03 |
|
|
|
PHP gevorderde
|
Dit is echt een slecht script. Formulieren maak je niet in PHP met een class, maar gewoon in HTML.... Ze in PHP maken is gewoon lui zijn. |
|
|
|
Gepost op: 01 juni 2006 - 20:11 |
|
|
|
Onbekend
|
Ik vind niet dat je dan lui bent. Het is veel handiger om html en php gescheiden te houden. Mischien ben je dan lui ja. Ik heb ook nog 1 puntje op te merken aan de class. Eigenlijk moet je hier functies van maken. Ik vind niet echt dat dit in een class hoort. In een class moet er eigenlijk werk achter de schermen verzet worden. En dat wordt hier niet gedaan. |
|
|
|
Gepost op: 12 augustus 2007 - 19:22 |
|
|
|
Crew algemeen
|
deze is van mij:
<?php
class form
{
private $formname = NULL;
public $newobject = NULL;
public $form = NULL;
public $cssClass = '';
public function __construct ($formname=NULL, $method='post', $action=NULL, $enctype=false, $target=NULL, $cssClass=NULL)
{
$this->newobject = new formobjects($this);
if(empty($formname))
{
$this->formname = 'form'.rand(0,99);
}
else
{
$this->formname = $formname;
}
$action = ($action ? ' action="'.$action.'"' : '');
$enctype = ($enctype ? ' enctype="application/x-www-form-urlencoded"' : '');
$target = ($target ? ' target="'.$target.'"' : '');
$cssClass = ($cssClass ? ' class="'.$cssClass.'"' : '');
$this->form = '<form method="'.$method.'" name="'.$this->formname.'"'.$action.$enctype.$target.$cssClass.'>';
}
public function setCSSClass ($class)
{
$this->cssClass = $class;
}
public function getFormName()
{
return $this->formname;
}
public function newline()
{
$this->form .= '<br />'."\r\n";
}
public function addToForm ($txt)
{
$this->form .= $txt;
}
public function prepare()
{
$this->form .= '</form>';
}
public function printForm($return=false)
{
if($return)
{
return $this->form;
}
else
{
echo $this->form;
}
}
}
class formobjects
{
protected $form;
public function __construct($formObject)
{
$this->form = $formObject;
}
public function textField ($name, $label=NULL, $value=NULL, $id=NULL, $size=NULL, $maxlenght=NULL, $readonly=false, $disabled=false)
{
$label = ($label ? $label.' ' : '');
$id = ($id ? ' id="'.$id.'"' : '');
$value = ($value ? ' value="'.$value.'"' : '');
$size = ($size ? ' size="'.$size.'"' : '');
$maxlenght = ($maxlenght ? ' maxlenght="'.$maxlenght.'"' : '');
$readonly = ($readonly ? ' readonly="true"' : '');
$disabled = ($disabled ? ' disabled' : '');
$this->form->form .= '<label>'.$label.'<input type="text" name="'.$name.'"'.$value.$id.$size.$maxlenght.$readonly.$disabled.$this->form->class.' /></label>';
}
public function fileField ($name, $label=NULL)
{
$label = ($label ? $label.' ' : '');
$this->form->form .= '<label>'.$label.'<input type="file" name="'.$name.'" /></label>';
}
public function passwdField ($name, $label=NULL, $value=NULL, $id=NULL, $size=NULL, $maxlenght=NULL, $readonly=false, $disabled=false)
{
$label = ($label ? $label.' ' : '');
$id = ($id ? ' id="'.$id.'"' : '');
$value = ($value ? ' value="'.$value.'"' : '');
$size = ($size ? ' size="'.$size.'"' : '');
$maxlenght = ($maxlenght ? ' maxlenght="'.$maxlenght.'"' : '');
$readonly = ($readonly ? ' readonly="true"' : '');
$disabled = ($disabled ? ' disabled' : '');
$this->form->form .= '<label>'.$label.'<input type="passwd" name="'.$name.'"'.$value.$id.$size.$maxlenght.$readonly.$disabled.$this->form->class.' /></label>';
}
public function hiddenField ($name, $value)
{
$this->form->form .= '<input type="hidden" name="'.$name.'" value="'.$value.'" />';
}
public function submitButton ($name, $value='Submit', $id=NULL)
{
$id = ($id ? ' id="'.$id.'"' : '');
$this->form->form .= '<input type="submit" name="'.$name.'" value="'.$value.'"'.$id.'>';
}
public function textArea ($name, $label=NULL, $value=NULL, $id=NULL, $cols=NULL, $rows=NULL, $wrap=NULL, $readonly=false, $disabled=false)
{
$cols = ($cols ? ' cols="'.$cols.'"' : '');
$rows = ($rows ? ' rows="'.$rows.'"' : '');
$id = ($id ? ' id="'.$id.'"' : '');
$label = ($label ? $label.': ' : '');
$readonly = ($readonly ? ' readonly="true"' : '');
$disabled = ($disabled ? ' disabled' : '');
$wrap = (!$wrap ? ' wrap="off"' : ' wrap="'.$wrap.'"');
$label = ($label ? $label.'<br />' : '');
$this->form->form .= $label.'<textarea name="'.$name.'"'.$cols.$rows.$id.$readonly.$disabled.$wrap.'>'.$value.'</textarea>';
}
public function checkbox($name, $value, $label=NULL, $checked=false, $disabled=false)
{
$disabled = ($disabled ? ' disabled' : '');
$checked = ($checked ? ' checked' : '');
$label = ($label ? ' '.$label : '');
$this->form->form .= '<label><input type="checkbox" name="'.$name.'" value="'.$value.'" '.$checked.$disabled.' />'.$label.'</label>';
}
public function radiobutten ($name, $value, $label=NULL, $checked=false, $disabled=false)
{
$disabled = ($disabled ? ' disabled' : '');
$checked = ($checked ? ' checked' : '');
$label = ($label ? ' '.$label : '');
$this->form->form .= '<label><input type="radio" name="'.$name.'" value="'.$value.'" '.$checked.$disabled.' />'.$label.'</label>';
}
}
?>
<?php class form { private $formname = NULL; public $newobject = NULL; public $form = NULL; public $cssClass = ''; public function __construct ($formname=NULL, $method='post', $action=NULL, $enctype=false, $target=NULL, $cssClass=NULL) { $this->newobject = new formobjects($this); { $this->formname = 'form'.rand(0,99); } else { $this->formname = $formname; } $action = ($action ? ' action="'.$action.'"' : ''); $enctype = ($enctype ? ' enctype="application/x-www-form-urlencoded"' : ''); $target = ($target ? ' target="'.$target.'"' : ''); $cssClass = ($cssClass ? ' class="'.$cssClass.'"' : ''); $this->form = '<form method="'.$method.'" name="'.$this->formname.'"'.$action.$enctype.$target.$cssClass.'>'; } public function setCSSClass ($class) { $this->cssClass = $class; } public function getFormName() { return $this->formname; } public function newline() { $this->form .= '<br />'."\r\n"; } public function addToForm ($txt) { $this->form .= $txt; } public function prepare() { $this->form .= '</form>'; } public function printForm($return=false) { if($return) { return $this->form; } else { } } } class formobjects { protected $form; public function __construct($formObject) { $this->form = $formObject; } public function textField ($name, $label=NULL, $value=NULL, $id=NULL, $size=NULL, $maxlenght=NULL, $readonly=false, $disabled=false) { $label = ($label ? $label.' ' : ''); $id = ($id ? ' id="'.$id.'"' : ''); $value = ($value ? ' value="'.$value.'"' : ''); $size = ($size ? ' size="'.$size.'"' : ''); $maxlenght = ($maxlenght ? ' maxlenght="'.$maxlenght.'"' : ''); $readonly = ($readonly ? ' readonly="true"' : ''); $disabled = ($disabled ? ' disabled' : ''); $this->form->form .= '<label>'.$label.'<input type="text" name="'.$name.'"'.$value.$id.$size.$maxlenght.$readonly.$disabled.$this->form->class.' /></label>'; } public function fileField ($name, $label=NULL) { $label = ($label ? $label.' ' : ''); $this->form->form .= '<label>'.$label.'<input type="file" name="'.$name.'" /></label>'; } public function passwdField ($name, $label=NULL, $value=NULL, $id=NULL, $size=NULL, $maxlenght=NULL, $readonly=false, $disabled=false) { $label = ($label ? $label.' ' : ''); $id = ($id ? ' id="'.$id.'"' : ''); $value = ($value ? ' value="'.$value.'"' : ''); $size = ($size ? ' size="'.$size.'"' : ''); $maxlenght = ($maxlenght ? ' maxlenght="'.$maxlenght.'"' : ''); $readonly = ($readonly ? ' readonly="true"' : ''); $disabled = ($disabled ? ' disabled' : ''); $this->form->form .= '<label>'.$label.'<input type="passwd" name="'.$name.'"'.$value.$id.$size.$maxlenght.$readonly.$disabled.$this->form->class.' /></label>'; } public function hiddenField ($name, $value) { $this->form->form .= '<input type="hidden" name="'.$name.'" value="'.$value.'" />'; } public function submitButton ($name, $value='Submit', $id=NULL) { $id = ($id ? ' id="'.$id.'"' : ''); $this->form->form .= '<input type="submit" name="'.$name.'" value="'.$value.'"'.$id.'>'; } public function textArea ($name, $label=NULL, $value=NULL, $id=NULL, $cols=NULL, $rows=NULL, $wrap=NULL, $readonly=false, $disabled=false) { $cols = ($cols ? ' cols="'.$cols.'"' : ''); $rows = ($rows ? ' rows="'.$rows.'"' : ''); $id = ($id ? ' id="'.$id.'"' : ''); $label = ($label ? $label.': ' : ''); $readonly = ($readonly ? ' readonly="true"' : ''); $disabled = ($disabled ? ' disabled' : ''); $wrap = (!$wrap ? ' wrap="off"' : ' wrap="'.$wrap.'"'); $label = ($label ? $label.'<br />' : ''); $this->form->form .= $label.'<textarea name="'.$name.'"'.$cols.$rows.$id.$readonly.$disabled.$wrap.'>'.$value.'</textarea>'; } public function checkbox($name, $value, $label=NULL, $checked=false, $disabled=false) { $disabled = ($disabled ? ' disabled' : ''); $checked = ($checked ? ' checked' : ''); $label = ($label ? ' '.$label : ''); $this->form->form .= '<label><input type="checkbox" name="'.$name.'" value="'.$value.'" '.$checked.$disabled.' />'.$label.'</label>'; } public function radiobutten ($name, $value, $label=NULL, $checked=false, $disabled=false) { $disabled = ($disabled ? ' disabled' : ''); $checked = ($checked ? ' checked' : ''); $label = ($label ? ' '.$label : ''); $this->form->form .= '<label><input type="radio" name="'.$name.'" value="'.$value.'" '.$checked.$disabled.' />'.$label.'</label>'; } } ?>
vb van gebruik:
<?php
require_once('form.class.php');
$form = new form;
$form->newobject->textfield('naam', 'Naam');
$form->newline();
$form->newobject->textfield('voornaam', 'Voornaam');
$form->newline();
$form->newobject->submitbutton('add', 'Toevoegen');
$form->prepare();
$form->printForm();
?>
<?php require_once('form.class.php'); $form = new form; $form->newobject->textfield('naam', 'Naam'); $form->newline(); $form->newobject->textfield('voornaam', 'Voornaam'); $form->newline(); $form->newobject->submitbutton('add', 'Toevoegen'); $form->prepare(); $form->printForm(); ?>
|
|
|
|
Gepost op: 24 maart 2016 - 15:23 |
|
|
|
Moderator
|
Ik weet dat dit script al redelijk "vintage" is, maar het idee is nog steeds goed. Je kunt een hele hoop tijd besparen als je een soort van formuliersysteem hebt.
Wat dit systeem echter een beetje mist is het volgende:
- opdeling in verschillende classes, zo zou je bijvoorbeeld een form class kunnen hebben, en een (abstracte) formfield class, waar je weer formulier-elementen ui af kunt leiden
- validatie(regels) voor data, als je dit inbouwt zou dit echt vet zijn, zodat je met deze form class de complete verwerking voor je rekening kunt nemen
- initialisatieroutine voor data, zodat je een formulier kunt hergebruiken voor het wijzigen van gegevens
Formulierelementen hoeven ook niet enkel te bestaan uit een radiobutton of een tekstveld. Dit kunnen ook complexere elementen zijn die zijn opgebouwd uit meerdere elementaire (standaard) formulierelementen. Zo zou je met twee dropdown waartussen je elementen kunt overgooien een "nieuw" formulierelement bouwen.
Een uitwerking van dit concept zie je hier.
Alle code van die en onderliggende pagina's voor het toevoegen en wijzigen van gegevens kun je hier terugvinden. De hoeveelheid code voor het opstellen van dit formulier is vele malen korter dan wanneer je zo'n compleet (en redelijk complex) formulier elke keer opnieuw zou moeten maken. Het werk wat je stopt in het schrijven van zo'n formuliersysteem verdient zich heel snel terug. |
|
|
Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom. |
|
|
|