Documentation

Nitrogen Restful Elements

Overview

Restful elements introduce the possibility to create forms that don't depend on AJAX/Javascript. This is sometimes useful, for example if you want to provide a fallback option when a client does not support javascript or sits behind a firewall that filters active content.

Demo

Check out the RESTful Forms Demo

How it works

Restful requests work a little different compared to the rest of Nitrogen. They don't use the event mechanism. Instead you have to render the reply either on a different page or check if wf:q(restful_method) is set to "post" or "get" depending on the method of the form. Form elements that don't rely on javascript are useable in restful_form elements. The elements that are supported are described below.

Each control within a #restful_form{} element will submit its Nitrogen id as the name of the field, unless overridden by specifying an html_name on the restful elements.

Replaced and new elements

New Elements

Replaced elements

Some elements are replaced with restful_ counterparts:

Supported elements

No support for validators

Validators are not currently supported for restful_submit actions, so be sure extra sure to check your inputs.

Example

  case wf:q(restful_method) of
    "post" -> [
        % this is code is executed after the submit button was pressed

        #table{rows=[
            #tablerow{cells=[
                #tablecell{text="text_input"},
                #tablecell{text=wf:q(text_input)}
            ]}
         ]};
    _else -> [
        % this code is executed when restful_method is "get" 
        % or undefined

        #restful_form{id=restful_form, method=post, body=[
           #table{rows=[
                #tablerow{cells=[
                    #tablecell{text="text_input"},
                    #tablecell{body=[#textbox{id=text_input}]}
               ]}
            ]},
            #restful_reset{},
            #restful_submit{}
         ]}
    ]
  end


View Source or Submit Corrections for this Documentation Page
Copyright © 2008-2021 Nitrogen Web Framework. Released under the MIT License.