Quick links: Content - sections - sub sections
EN

Trace:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:tutorials:simple-jforms-example [2008/03/04 14:28] biboen:tutorials:simple-jforms-example [2008/11/19 15:02] – external edit 127.0.0.1
Line 16: Line 16:
 </code> </code>
  
-Don't forget to change rights on ''<jelix folder>/temp/myapp/''. This will allow your web server to create files in this directory. ([[en:manual:installation|see installation manual]]).+Don't forget to change rights on ''<jelix folder>/temp/myapp/''. This will allow your web server to create files in this directory. ([[en:manual-1.0:installation|see installation manual]]).
  
 An application skeleton is created. Your local tree structure should look like: An application skeleton is created. Your local tree structure should look like:
Line 52: Line 52:
 <code xml> <code xml>
  <?xml version="1.0" encoding="utf-8"?>  <?xml version="1.0" encoding="utf-8"?>
- <forms xmlns="http://jelix.org/ns/forms/1.0">+ <form xmlns="http://jelix.org/ns/forms/1.0">
    
    <menulist ref="title">    <menulist ref="title">
Line 75: Line 75:
      <label>Contact us</label>      <label>Contact us</label>
    </submit>    </submit>
-  </forms>+  </form>
 </code> </code>
  
 You can see that it is a declarative format. It is easy to read and edit. You can see that it is a declarative format. It is easy to read and edit.
 +
 +
  
  
Line 94: Line 96:
    
         $f = jForms::create("myapp~contact");         $f = jForms::create("myapp~contact");
-        $view->tpl->assign('form', $f );+        $view->body->assign('form', $f );
    
         return $view;         return $view;
Line 123: Line 125:
 thing because this action is the default one of the application), and watch the results : thing because this action is the default one of the application), and watch the results :
  
 +{{en:tutorials:simple-forms-example-1.png}}
  
 When testing this form, notice the check done on fields before submit : some javascript code is generated automatically on this purpose. Anyway, here is the generated html code : When testing this form, notice the check done on fields before submit : some javascript code is generated automatically on this purpose. Anyway, here is the generated html code :
Line 195: Line 198:
  
 Here is the result of this template : Here is the result of this template :
 +
 +
 +{{en:tutorials:simple-forms-example-2.png}}
 +
 +
  
  
Line 209: Line 217:
         $f = jForms::fill("myapp~contact");         $f = jForms::fill("myapp~contact");
         if(!$f || !$f->check()) {         if(!$f || !$f->check()) {
-            $rep = $this->getResponse('redirect'); +            $view = $this->getResponse('redirect'); 
-            $rep->action="myapp~default:index"; +            $view->action="myapp~default:index"; 
-            return $rep;+            return $view;
         }         }
    
Line 228: Line 236:
 </code> </code>
  
-Instead of just creating a new instance of the contact form, check before if there is an existing one.+Instead of just creating a new instance of the contact form, check before if there is an existing one. So HTML fields will be filled with datas previously submitted.
  
 Back to **save** method. After the **$f->check()**, you could insert some business code (not shown in this tutorial). For example: Back to **save** method. After the **$f->check()**, you could insert some business code (not shown in this tutorial). For example:
Line 236: Line 244:
  
     $alldatas = $f->getDatas();     $alldatas = $f->getDatas();
 +    // or
     $firstname = $f->getData('firstname');     $firstname = $f->getData('firstname');
-    if ($firstname=='ET') { /goto home }+    if ($firstname=='ET') { /goto home */ }
     // and so on.     // and so on.
 </code> </code>
Line 260: Line 269:
  
 Use again the **formcontrols** plugin, but in a standalone manner (not with a **form** plugin). Indicate as arguments the jFormsBase object (**$form**), and the list of controls to display (those are optional). Use again the **formcontrols** plugin, but in a standalone manner (not with a **form** plugin). Indicate as arguments the jFormsBase object (**$form**), and the list of controls to display (those are optional).
 +
 +{{en:tutorials:simple-forms-example-3.png}}
 +
 +
 +
 +
 +
  
 ===== Conclusion ===== ===== Conclusion =====
Line 271: Line 287:
   * validate submitted data (this is done automatically !)   * validate submitted data (this is done automatically !)
   * display the form again with errors   * display the form again with errors
 +
 +With only one xml file and few lines of code !
  
 And jForms has many other features, such as : And jForms has many other features, such as :
  
-  * create your own form "builder", so plugins could displays the form, not in HTML, but in other format like Xforms, XUL, or in HTML+ajax.+  * create your own form "builder" (soon in jelix 1.1), so plugins could displays the form, not in HTML, but in other format like Xforms, XUL, or in HTML + your prefered ajax library.
   * specify your own error messages   * specify your own error messages
 +  * localize everything
   * manage how error messages are displayed   * manage how error messages are displayed
   * display helps and tooltips   * display helps and tooltips
-  * fill menulist, listbox, (adn so on) automatically, using a jDao object (ORM layer of Jelix) +  * fill menulist, listbox, (and so on) choices automatically, using a jDao object (ORM layer of Jelix) 
-  * store data automatically still using a jDao object+  * read and store data automatically still using a jDao object
   * create quickly a CRUD controller, by using the jControllerDaoCrud controller (only indicate a jforms file, a jdao file, and that's all !)   * create quickly a CRUD controller, by using the jControllerDaoCrud controller (only indicate a jforms file, a jdao file, and that's all !)
-  * and many other controls are availabled: **<textarea>**, **<listbox>**, **<checkbox>**, **<checkboxes>**, **<radiobuttons>**, **<reset>**,   **<secret>**, **<secret>**+**<confirmation>**, **<upload>** +  * and many other controls are availabled: **<textarea>**, **<listbox>**, **<checkbox>**, **<checkboxes>**, **<radiobuttons>**, **<reset>**,   **<secret>**, **<secret>**+confirmation, **<upload>** 
-  * some others will be available soon:  **<htmleditor>** **<hidden>**...+  * some others will be available soon in Jelix 1.1 :  **<htmleditor>** **<hidden>** **<captcha>** (already in 1.1a1pre) etc.
  
  

en/tutorials/simple-jforms-example.txt · Last modified: 2012/12/06 20:38 by laurent

Recent changes RSS feed Creative Commons License