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 15:03] laurenten: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 95: 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 200: Line 201:
  
 {{en:tutorials:simple-forms-example-2.png}} {{en:tutorials:simple-forms-example-2.png}}
 +
 +
 +
  
  
Line 213: 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 232: 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 240: 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 266: Line 271:
  
 {{en:tutorials:simple-forms-example-3.png}} {{en:tutorials:simple-forms-example-3.png}}
 +
 +
 +
 +
 +
  
 ===== Conclusion ===== ===== Conclusion =====
Line 277: 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