In the first part of this series, I gave you a quick introduction to the newly-released XForms 1.0 specification, by explaining the fundamental concepts of the XForms model. Now that you know the basics, find out how to submit XForms data to a server-side script or save it to a local client file, and also read about how XForms can integrate with XML Schemas to simplify input validation.
<!-- define interface controls --> <table cellspacing="5" cellpadding="5" border="0"> <tr> <td> <xforms:input id="txtname" model="information" ref="/user/name"> <xforms:label> Name </xforms:label> <xforms:hint> Enter your name here </xforms:hint> </xforms:input> </td> </tr> <tr> <td> <xforms:input id="txtemail" model="information" ref="/user/email"> <xforms:label> Email address </xforms:label> <xforms:hint> Enter your email address here </xforms:hint> </xforms:input> </td> <td> <xforms:input id="intage" model="information" ref="/user/age"> <xforms:label> Age </xforms:label> <xforms:hint> Enter your age here </xforms:hint> </xforms:input> </td> </table> <xforms:submit submission="submit"> <xforms:label>Save</xforms:label> </xforms:submit> </body> </html>
You'll notice that I've defined a custom type in the form model – something called "adultsOnly". The definition for this type is stored in an XML Schema, and it only allows you to enter values equal to or over 18 into the corresponding field. Take a look:
And that's about it for today. In this article, I began by discussing the XForms submission process, and explained how to use the <xforms:submission> element to save form input to a local file with the PUT method, and how to pass it to a server-side script for storage in a MySQL database. I also showed you a real-world example of the latter, by using the PHP SAX parser to parse the instance document generated by an XForms submission and convert it into an SQL query string.
Next, I taught you how XForms significantly simplifies the task of input validation, by integrating with XML Schema datatypes and allowing you to validate user input against those datatypes. Here too, I showed you a couple of different examples, one using XML Schema built-in datatypes and the other using my own custom types.
Next time, I'll be delving a little deeper into the XForms specification, explaining binding, form events, and built-in functions. Until then, stay healthy!
Note: Examples are illustrative only, and are not meant for a production environment. Melonfire provides no warranties or support for the source code described in this article.