Tag - remoteFunction
Description
Creates a remote javascript function that can be assigned to a DOM event to call the remote method
Parameters
- action (optional) - the name of the action to use in the link, if not specified the default action will be linked
- controller (optional) - the name of the controller to use in the link, if not specified the current controller will be linked
- id (optional) - The id to use in the link
- update (optional) - Either a map containing the elements to update for 'success' or 'failure' states, or a string with the element to update in which cause failure events would be ignored
- before (optional) - The javascript function to call before the remote function call
- after (optional) - The javascript function to call after the remote function call
- asynchronous (optional) - Whether to do the call asynchronously or not (defaults to true)
- method (optional) - The method to use the execute the call (defaults to "post")
- params (optional) - Parameters to send to the controller
Events
- onSuccess (optional) - The javascript function to call if successful
- onFailure (optional) - The javascript function to call if the call failed
- on_ERROR_CODE (optional) - The javascript function to call to handle specified error codes (eg on404="alert('not found!')")
- onUninitialized (optional) - The javascript function to call the a ajax engine failed to initialise
- onLoading (optional) - The javascript function to call when the remote function is loading the response
- onLoaded (optional) - The javascript function to call when the remote function is completed loading the response
- onComplete (optional) - The javascript function to call when the remote function is complete, including any updates
Examples
Example controller for an application called "shop":
class Book {
def defaultAction="list"
def list = { [ books: Book.list( params ) ] }
def show = { [ book : Book.get( params['id'] ) ] }
def bookbyname = { [ book : Book.findByName( params.bookName ) ] } }
Example usages for above controller:
$('mydiv').onclick = <g:remoteFunction action="show" id="1" />
Example as a method call in GSP only:
<g:javascript library="scriptaculous" />
…
<select onchange="${remoteFunction(action:'bookbyname',update:[success:'great', failure:'ohno'], params:[bookName:this.value])}">
<option>first</option>
<option>second</option>
</select>
Notes:
- Use single quotes inside the GSP "${}"
- Include the prototype library in the head section of your page: <g:javascript library="prototype" />