The sample job application form is a responsive HTML form with database support.
A US job application form like the above sample was the pattern for the IT job application form sample. We will create the below two forms with database access.
The job application form sample shows how to create a date entry field from select controls. There is a wide range of date formats, and most of them are easily reproducible using the form designer. The initial date format used here is simply the default date format - ISO 8601 (yyyy mm dd).
The job application form uses the Euro sign € to introduce Unicode characters.
The job application form sample shows how to create fixed, fluid and responsive HTML form layout. The below fixed layout is the default html form layout.
Fluid and responsive HTML forms adapt their widths to their container's width. The below screenshot shows the fluid job application form proportionally stretched (percentage based) in a wide container.
Shown below is a responsive HTML form - fluid in a container down to its minimum fluid width, and degraded in a narrow container.
The job application form makes use of the group element to <fieldset> the "Personal Data", "Job", and "Date you can start" blocks. Thus, the blind user gets a well-structured HTML form.
The job application form offers database access, currently SQL only.
Drag-and-drop a group symbol from the toolbar on the form to create a group component.
Double-click the group's label cell and change the label to "Personal Data".
Drag-and-drop a text field symbol from the toolbar on the "Personal Data" group symbol …
… and change its label to "Last Name*". Stretch the properties cell a little.
Double-click the "Last Name*" properties cell to open the custom-textfield properties dialog. Set the input required and change the maximum input length to e.g. 60 characters.
Below is the actualized "Last Name*" text field component. The regular expression used for input validation contains now the \p{L} to accept upper and lowercase Unicode letters.
Right-click the text field symbol and clone the text field component with its properties. Clone the text field component again.
Change the labels of the new text field components. Open the properties dialogs and change the maximum lengths. The middle-name input is optional.
Create another text field component in the "Personal Data" group, change its type to "Email", and set the input required.
Create a text area component in the "Personal Data" group, set the input required, and increase the maximal length to 2000 characters (e.g. for a one-page resume).
Drag-and-drop another group symbol on the form and change the group label to "Job". Create a select component in the "Job" group and change the select label to "Position applied for".
Double-click the select component's properties cell and replace the select default options with the four options below:
AdministrationDrag-and-drop a group symbol from the toolbar on the "Job" group symbol and change the new group's label to "Date you can start".
Add three select components to the "Date you can start" group and turn the group into a date group. Set the select labels accessible-only to save space on the regular HTML form. Only the accessible form will be supplied with year, month, and day labels.
Double-click the "Year" properties cell to open the year properties dialog. Specify the years the user can select.
Shown below is the updated range of years the user can select.
Drag-and-drop a text field symbol on the "Job" group symbol. Change the text field type to "Number" and the label to "Hourly Wage (€)*" with the Euro sign as Unicode character (hexadecimal code point 20ac with a leading \u). Input is required and an hourly wage of 30.00 is given as initial value within a range of 10.00 to 100.00.
Alternatively, drag-and-drop or paste (Ctrl-v) the Unicode character from a web site.
Drag-and-drop another text field symbol on the "Job" group symbol. Change the text field type to "Integer" and the label to "Weekly Hours*". Input is required and an initial value of 40 is given within a range of e.g. 1 to 100.
Drag-and-drop a button symbol on the form and change its type to Submit in the button's context menu.
Add error messages where requested and indicated by dots in the message cells.
Switch to the layout view with its initial form layout. Toggle the view mode as convenient.
Resize the page and rearrange the form objects on the canvas. Use multiple selection to move groups of drawing objects.
Change horizontal alignments.
Enlarge the "Personal Data" and "Job" labels, and give them a white background. Use the roundness trackers to create neat horizontal padding.
Drag-and-drop round-corners rectangles from the toolbar on the canvas as borders to segment the form elements visually. Double-click to specify border and background.
Finally, double-click the page background and select a page border and a background. Have a look at screenshots from the form in different browsers.
Save the form's source code to the file system and run the job application form client-only or client-server, with or without database support.
The fixed form layout is the default layout. If you want a fluid or responsive form layout, switch to the settings view and select the desired form layout. The form builder will do the rest.
The new date format is US mmm dd yyyy. Switch to the date section of the settings view. Change the month format from default "mm" to short month names "mmm".
Switch to the structure view and reorder the date elements. Delete the Euro sign.
Switch to the structure view and redraw the date objects. Done.
Click the settings tab, select the client-server code and the database "MySQL" options. Enter the MySQL root password if required - MySQL has no initial root password, MAMP's initial MySQL root password is "root" (see LAMP, MAMP, or WAMP).
Click the product tab and save the job application HTML form to the server folder as index.php.
Load the job application HTML form in your browser, complete it, and submit it.
Shown below is what we have in our database.
"1" "Williams" "John" "Alan" "jw@achlina.com" "Extensive expertise in Prolog development. Designed and implemented WAMs in C++ and Rust." "2" "2021" "8" "3" "100.00" "60" "2020-02-04 18:42:42"
The last entry is the record's timestamp (sample update on 2020-Feb-04).
Below is the source code of the client-only version of the job application form.
<?xml version="1.0" encoding="us-ascii" standalone="yes"?> <!-- Created on Tue Feb 04 18:08:33 CET 2020 --> <form> <settings> <form-settings code="1" database="1" host="bG9jYWxob3N0" port="8888" user="cm9vdA==" password="cm9vdA==" layout="2"/> </settings> <pages> <page width="1880" height="2470" border="1" border-color="C0C0C0" border-opacity="10" background="1" background-color="FFFFFF" background-opacity="10"> <defaults> <shape border="1" border-color="6699FF" border-opacity="10" background="1" background-color="FFFFFF" background-opacity="10"/> <label alignment="left" font-family="THVjaWRhIFNhbnMgVW5pY29kZQ==" text-color="000000" text-opacity="10" border="0" background="0"/> </defaults> <shapes> <shape type="roundrect" x="40" y="80" width="1800" height="1470" border-radius="40"/> <shape type="roundrect" x="40" y="1640" width="1800" height="640" border-radius="40"/> </shapes> <components> <component type="group"> <label x="210" y="10" width="720" height="120" background="1" border-radius="20">UGVyc29uYWwgRGF0YQ==</label> <components> <component type="textfield"> <control x="80" y="300" width="1720"/> <label x="80" y="160" width="480" height="100">TGFzdCBOYW1lKg==</label> <properties type="custom" required="true"> <max-length>60</max-length> <regexp>L15bLVxwe0x9IDAtOS4nXXsyLH0kLw==</regexp> </properties> <messages> <missing-input>UGxlYXNlIGVudGVyIHlvdXIgbGFzdCBuYW1lLg==</missing-input> <invalid-input>VmFsaWQgY2hhcmFjdGVycyAoMiAtIDYwKSBhcmUgbGV0dGVycywgZGlnaXRzLCBkYXNoLCBibGFuaywgYW5kIHBlcmlvZC4=</invalid-input> </messages> </component> <component type="textfield"> <control x="80" y="580" width="920"/> <label x="80" y="440" width="490" height="100">Rmlyc3QgTmFtZSo=</label> <properties type="custom" required="true"> <max-length>40</max-length> <regexp>L15bLVxwe0x9IDAtOS4nXXsyLH0kLw==</regexp> </properties> <messages> <missing-input>UGxlYXNlIGVudGVyIHlvdXIgZmlyc3QgbmFtZS4=</missing-input> <invalid-input>VmFsaWQgY2hhcmFjdGVycyAoMiAtIDQwKSBhcmUgbGV0dGVycywgZGlnaXRzLCBkYXNoLCBibGFuaywgYW5kIHBlcmlvZC4=</invalid-input> </messages> </component> <component type="textfield"> <control x="1050" y="580" width="750"/> <label x="1250" y="440" width="550" height="100" alignment="right">TWlkZGxlIE5hbWU=</label> <properties type="custom"> <max-length>30</max-length> <regexp>L15bLVxwe0x9IDAtOS4nXXsyLH0kLw==</regexp> </properties> <messages> <invalid-input>VmFsaWQgY2hhcmFjdGVycyAoMiAtIDMwKSBhcmUgbGV0dGVycywgZGlnaXRzLCBkYXNoLCBibGFuaywgYW5kIHBlcmlvZC4=</invalid-input> </messages> </component> <component type="textfield"> <control x="80" y="860" width="1720"/> <label x="80" y="720" width="270" height="100">RW1haWwq</label> <properties type="email" required="true"> <max-length>128</max-length> <regexp>LyhefFxzKShbXHctXSsoPzpcLltcdy1dKykqQFtcdy1dKyhcLltcdy1dKykrXC4/KDpcZCspPyhcL1xTKik/KS9p</regexp> </properties> <messages> <missing-input>UGxlYXNlIGVudGVyIHlvdXIgZW1haWwgYWRkcmVzcy4=</missing-input> <invalid-input>WW91ciBlbWFpbCBhZGRyZXNzIGZvcm1hdCBpcyBpbnZhbGlkLg==</invalid-input> </messages> </component> <component type="textarea"> <control x="80" y="1140" width="1720" height="370"/> <label x="80" y="1000" width="380" height="100">UmVzdW1lKg==</label> <properties type="editable" required="true"> <max-length>2000</max-length> </properties> <messages> <missing-input>UGxlYXNlIGVudGVyIHlvdXIgcmVzdW1lLg==</missing-input> </messages> </component> </components> </component> <component type="group"> <label x="210" y="1570" width="180" height="120" background="1" border-radius="20">Sm9i</label> <components> <component type="select"> <control x="80" y="1860" width="1100"/> <label x="80" y="1720" width="830" height="100">UG9zaXRpb24gYXBwbGllZCBmb3I=</label> <properties type="custom"> <options> <initial-option>0</initial-option> <option>QWRtaW5pc3RyYXRpb24=</option><option>TW9iaWxlIERldmVsb3BtZW50</option><option>U29mdHdhcmUgRGV2ZWxvcG1lbnQ=</option><option>V2ViIERldmVsb3BtZW50</option> </options> </properties> </component> <component type="group"> <label x="80" y="2000" width="770" height="100">RGF0ZSB5b3UgY2FuIHN0YXJ0</label> <components> <component type="select"> <control x="80" y="2140" width="380"/> <label accessible-only="true">WWVhcg==</label> <properties type="year"> <options> <option>2020</option><option>2021</option><option>2022</option><option>2023</option><option>2024</option><option>2025</option><option>2026</option><option>2027</option><option>2028</option><option>2029</option> </options> </properties> </component> <component type="select"> <control x="510" y="2140" width="310"/> <label accessible-only="true">TW9udGg=</label> <properties type="month"> <options> <option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option> <option>11</option><option>12</option> </options> </properties> </component> <component type="select"> <control x="870" y="2140" width="310"/> <label accessible-only="true">RGF5</label> <properties type="day"> <options> <option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option> <option>11</option><option>12</option><option>13</option><option>14</option><option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option> <option>21</option><option>22</option><option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option> <option>31</option> </options> </properties> </component> </components> <messages> <invalid-input>UGxlYXNlIGVudGVyIGEgdmFsaWQgZGF0ZS4=</invalid-input> </messages> </component> <component type="textfield"> <control x="1410" y="1860" width="390" alignment="right"/> <label x="1090" y="1720" width="710" height="100" alignment="right">SG91cmx5IFdhZ2UgKFx1MjBhYykq</label> <properties type="number" required="true"> <decimal-places>2</decimal-places> <initial-value>30.00</initial-value> <min-value>10.00</min-value> <max-value>100.00</max-value> </properties> <messages> <missing-input>UGxlYXNlIGVudGVyIHRoZSBob3VybHkgd2FnZSB5b3UgYXJlIHNlZWtpbmcgKDEwIC0gMTAwIFx1MjBhYyku</missing-input> <invalid-input>UGxlYXNlIGVudGVyIGEgcmVhc29uYWJsZSBob3VybHkgd2FnZSAgKDEwLjAwIC0gMTAwLjAwIEVVUiku</invalid-input> </messages> </component> <component type="textfield"> <control x="1410" y="2140" width="390" alignment="right"/> <label x="1180" y="2000" width="620" height="100" alignment="right">V2Vla2x5IEhvdXJzKg==</label> <properties type="integer" required="true"> <initial-value>40</initial-value> <min-value>1</min-value> <max-value>100</max-value> </properties> <messages> <missing-input>UGxlYXNlIGVudGVyIHRoZSB3ZWVrbHkgaG91cnMgeW91IGFyZSBhdmFpbGFibGUgdG8gd29yay4=</missing-input> <invalid-input>UGxlYXNlIGVudGVyIHJlYXNvbmFibGUgd2Vla2x5IGhvdXJzICAoMSAtIDEwMCku</invalid-input> </messages> </component> </components> </component> <component type="button"> <control x="1440" y="2330" width="400"/> <label>U3VibWl0</label> <properties type="submit"> </properties> </component> </components> <messages> <missing-input>TWlzc2luZyBpbnB1dDo=</missing-input> <invalid-input>SW52YWxpZCBpbnB1dDo=</invalid-input> </messages> </page> </pages> </form>