Here's how to allow end users without designer access to create custom HTML-forms whose content can be saved from the Web to Domino for further processing.
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
With 100+ different form/scheme containers on our intranet, we had to come up with a generic solution allowing the users to create custom HTML-forms without giving the user designer access to the Domino database(s) holding the form documents.
Solution: Place the user-defined and -generated HTML form in a Notes document which is then used as a template for creating new documents based on a form containing hidden fields with the same names as the input fields in the HTML form document.
The solution is relatively simple to explain and rather lengthy to implement...
Used by the user to create a new document using HTML to generate the desired look'n'feel. The HTML code is stored in the field 'html_code'.
For the users who are used to the HTML form. The form holds 60 fields named 'f1' through 'f60', various validation scripts etc. The field 'html_code' is populated with the HTML form through the URL: 'http://server/path/db.nsf/FORM2?OpenForm&ParentUNID=XXX' where XXX is the UNID of the document created with FORM 1.
When a document based on FORM 2 is submitted, the input fields from the HTML form are saved to the hidden Notes fields (f1..f60).
In effect, what we are doing is placing a HTML 'proxy' form on the Web which is fully customizable and editable without subjecting the form editor to the blessings of the Notes Designer and without compromising db design and at the same time keeping control of our environment and applications !
The solution places only 2 constraints on the user form:
1. The user can use only as many fields as specified in the design of FORM 2 - in our case 60 fields are available to the HTML form creator.
2. The user must use a specific naming scheme for the input fields - in our case the fields are named f1..f60