Ferreteria/v2/usage/forms/displaying: Difference between revisions
(clarifying comments) |
(note about LoadRecord()) |
||
Line 23: | Line 23: | ||
__END__; | __END__; | ||
</php> | </php> | ||
...but note that calling LoadRecord() causes the Field objects to return TRUE from IsChanged() if the loaded value is non-NULL. This overrides POST data in $oForm->Save(), so presumably you'll need to build the update query manually or else clear the form fields somehow (currently not supported, but maybe it should be). |
Revision as of 21:15, 5 November 2015
displaying a form
See Template:Vbzcart/code (inside function AdminPage_basic()) for a working example of a full-page form.
It can also be done without templates by retrieving the control and asking it to render itself:<php> $oForm = $this->EditForm(); // retrieve the form object (build it if needed) $oForm->LoadRecord(); // copy values from {memory image of record} to {form fields} $ftTag = $oForm->ControlObject('Name')->Render($doEdit); $ftCust = $oForm->ControlObject('ID_Cust')->Render($doEdit); $ftAddr = $oForm->ControlObject('ID_Addr')->Render($doEdit); $ftName = $oForm->ControlObject('ID_Name')->Render($doEdit); </php> ...(and so on), then manually plugging the rendered controls into the desired output format:<php> $out .= <<<__END__
...
ID: | $id |
Tag: | $ftTag |
Status: | $ftStatus |
Customer: | $ftCust |
Address: | $ftAddr |
Name: | $ftName |
__END__; </php> ...but note that calling LoadRecord() causes the Field objects to return TRUE from IsChanged() if the loaded value is non-NULL. This overrides POST data in $oForm->Save(), so presumably you'll need to build the update query manually or else clear the form fields somehow (currently not supported, but maybe it should be).