Class AjaxHelper
AjaxHelper helper library.
Helps doing AJAX using the Prototype library.
- AppHelper
- AjaxHelper
Copyright: Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: The MIT License
Location: view/helpers/ajax.php
Properties summary
-
$Html
publicHtmlHelper instance -
$Javascript
publicJavaScriptHelper
JavaScriptHelper instance -
$__ajaxBuffer
publicarray
Output buffer for Ajax update content -
$ajaxOptions
publicarray
Names of AJAX options. -
$autoCompleteOptions
publicarray
Options for auto-complete editor. -
$callbacks
publicarray
Names of Javascript callback functions. -
$dragOptions
publicarray
Options for draggable. -
$dropOptions
publicarray
Options for droppable. -
$editorOptions
publicarray
Options for in-place editor. -
$helpers
publicarray
Included helpers. -
$sliderOptions
publicarray
Options for slider. -
$sortOptions
publicarray
Options for sortable.
Method Summary
-
__getHtmlOptions() public
Private Method to return a string of html options option data as a JavaScript options hash.
-
__optionsForAjax() public
Private helper function for Javascript. -
_buildCallbacks() public
Return Javascript text for callbacks. -
_buildObserver() public
Return JavaScript text for an observer... -
_buildOptions() public
Returns a string of JavaScript with the given option data as a JavaScript options hash. -
_optionsToString() public
Returns a string of JavaScript with a string representation of given options array. -
afterRender() public
Executed after a view has rendered, used to include bufferred code blocks.
-
autoComplete() public
Create a text field with Autocomplete. -
div() public
Creates an Ajax-updateable DIV element -
divEnd() public
Closes an Ajax-updateable DIV element -
drag() public
Creates a draggable element. For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/draggable
-
drop() public
For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/droppables
-
dropRemote() public
Make an element with the given $id droppable, and trigger an Ajax call when a draggable is dropped on it.
-
editor() public
Makes an Ajax In Place editor control. -
form() public
Returns form tag that will submit using Ajax. -
isAjax() public
Detects Ajax requests -
link() public
Returns link to remote action -
observeField() public
Observe field and call ajax on change. -
observeForm() public
Observe entire form and call ajax on change. -
remoteFunction() public
Creates JavaScript function for remote AJAX call -
remoteTimer() public
Periodically call remote url via AJAX. -
slider() public
Makes a slider control. -
sortable() public
Makes a list or group of floated objects sortable. -
submit() public
Returns a button input tag that will submit using Ajax
Method Detail
__getHtmlOptions() public ¶
__getHtmlOptions( array $options , array $extra = array() )
Private Method to return a string of html options option data as a JavaScript options hash.
Parameters
- array $options
- Options in the shape of keys and values
- array $extra optional array()
- Array of legal keys in this options context
Returns
Array of html options
__optionsForAjax() public ¶
__optionsForAjax( array $options )
Private helper function for Javascript.
Parameters
- array $options
- Set of options
_buildCallbacks() public ¶
_buildCallbacks( array $options )
Return Javascript text for callbacks.
Parameters
- array $options
- Option array where a callback is specified
Returns
Options with their callbacks properly set
_buildObserver() public ¶
_buildObserver( string $klass , string $name , array $options = null )
Return JavaScript text for an observer...
Parameters
- string $klass
- Name of JavaScript class
- string $name
- array $options optional null
- Ajax options
Returns
Formatted JavaScript
_buildOptions() public ¶
_buildOptions( array $options , array $acceptable )
Returns a string of JavaScript with the given option data as a JavaScript options hash.
Parameters
- array $options
- Options in the shape of keys and values
- array $acceptable
- Array of legal keys in this options context
Returns
String of Javascript array definition
_optionsToString() public ¶
_optionsToString( array $options , array $stringOpts = array() )
Returns a string of JavaScript with a string representation of given options array.
Parameters
- array $options
- Ajax options array
- array $stringOpts optional array()
- Options as strings in an array
Returns
afterRender() public ¶
afterRender( )
Executed after a view has rendered, used to include bufferred code blocks.
autoComplete() public ¶
autoComplete( string $field , string $url = "" , array $options = array() )
Create a text field with Autocomplete.
Creates an autocomplete field with the given ID and options.
options['with'] defaults to "Form.Element.serialize('$field')", but can be any valid javascript expression defining the additional fields.
Parameters
- string $field
- DOM ID of field to observe
- string $url optional ""
- URL for the autocomplete action
- array $options optional array()
- Ajax options
Returns
Ajax script
div() public ¶
div( string $id , $options = array() )
Creates an Ajax-updateable DIV element
Parameters
- string $id
- options for javascript
- $options optional array()
Returns
HTML code
divEnd() public ¶
divEnd( string $id )
Closes an Ajax-updateable DIV element
Parameters
- string $id
- The DOM ID of the element
Returns
HTML code
drag() public ¶
drag( unknown_type $id , array $options = array() )
Creates a draggable element. For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/draggable
Parameters
- unknown_type $id
- array $options optional array()
Returns
drop() public ¶
drop( unknown_type $id , array $options = array() )
For a reference on the options for this function, check out http://github.com/madrobby/scriptaculous/wikis/droppables
Parameters
- unknown_type $id
- array $options optional array()
Returns
dropRemote() public ¶
dropRemote( string $id , array $options = array() , array $ajaxOptions = array() )
Make an element with the given $id droppable, and trigger an Ajax call when a draggable is dropped on it.
For a reference on the options for this function, check out http://wiki.script.aculo.us/scriptaculous/show/Droppables.add
Parameters
- string $id
- array $options optional array()
- array $ajaxOptions optional array()
Returns
JavaScript block to create a droppable element
editor() public ¶
editor( string $id , string $url , array $options = array() )
Makes an Ajax In Place editor control.
Parameters
- string $id
- DOM ID of input element
- string $url
- Postback URL of saved data
- array $options optional array()
- Array of options to control the editor, including ajaxOptions (see link).
Link
form() public ¶
form( mixed $params = null , array $type = 'post' , array $options = array() )
Returns form tag that will submit using Ajax.
Returns a form tag that will submit using XMLHttpRequest in the background instead of the regular reloading POST arrangement. Even though it's using Javascript to serialize the form elements, the form submission will work just like a regular submission as viewed by the receiving side (all elements available in params). The options for defining callbacks is the same as AjaxHelper::link().
Parameters
- mixed $params optional null
Either a string identifying the form target, or an array of method parameters, including: - 'params' => Acts as the form target - 'type' => 'post' or 'get' - 'options' => An array containing all HTML and script options used to generate the form tag and Ajax request.
- array $type optional 'post'
- How form data is posted: 'get' or 'post'
- array $options optional array()
- Callback/HTML options
Returns
JavaScript/HTML code
See
isAjax() public ¶
isAjax( )
Detects Ajax requests
Returns
True if the current request is a Prototype Ajax update call
link() public ¶
link( string $title , string $href = null , array $options = array() , string $confirm = null , boolean $escapeTitle = true )
Returns link to remote action
Returns a link to a remote action defined by options[url] (using the url() format) that's called in the background using XMLHttpRequest. The result of that request can then be inserted into a DOM object whose id can be specified with options[update].
Examples:
link("Delete this post", array("update" => "posts", "url" => "delete/{$postid->id}")); link(imageTag("refresh"), array("update" => "emails", "url" => "list_emails" ));
By default, these remote requests are processed asynchronous during which various callbacks can be triggered (for progress indicators and the likes).
Example:
link (word, array("url" => "undo", "n" => word_counter), array("complete" => "undoRequestCompleted(request)"));
The callbacks that may be specified are:
- loading:: Called when the remote document is being loaded with data by the browser.
- loaded:: Called when the browser has finished loading the remote document.
- interactive:: Called when the user can interact with the remote document, even though it has not finished loading.
- complete:: Called when the XMLHttpRequest is complete.
If you for some reason or another need synchronous processing (that'll block the browser while the request is happening), you can specify options[type] = synchronous.
You can customize further browser side call logic by passing in Javascript code snippets via some optional parameters. In their order of use these are:
- confirm:: Adds confirmation dialog. -condition:: Perform remote request conditionally by this expression. Use this to describe browser-side conditions when request should not be initiated.
- before:: Called before request is initiated.
- after:: Called immediately after request was initiated and before loading.
Parameters
- string $title
- Title of link
- string $href optional null
- Href string "/products/view/12"
- array $options optional array()
- Options for JavaScript function
- string $confirm optional null
- Confirmation message. Calls up a JavaScript confirm() message.
- boolean $escapeTitle optional true
- Escaping the title string to HTML entities
Returns
HTML code for link to remote action
observeField() public ¶
observeField( string $field , array $options = array() )
Observe field and call ajax on change.
Observes the field with the DOM ID specified by field and makes an Ajax when its contents have changed.
Required +options+ are: - frequency:: The frequency (in seconds) at which changes to this field will be detected. - url:: @see url() -style options for the action to call when the field has changed.
Additional options are: - update:: Specifies the DOM ID of the element whose innerHTML should be updated with the XMLHttpRequest response text. - with:: A Javascript expression specifying the parameters for the XMLHttpRequest. This defaults to Form.Element.serialize('$field'), which can be accessed from params['form']['field_id'].
Additionally, you may specify any of the options documented in
Parameters
- string $field
- DOM ID of field to observe
- array $options optional array()
- ajax options
Returns
ajax script
See
observeForm() public ¶
observeForm( string $form , array $options = array() )
Observe entire form and call ajax on change.
Like @see observeField(), but operates on an entire form identified by the DOM ID form. options are the same as observeField, except the default value of the with option evaluates to the serialized (request string) value of the form.
Parameters
- string $form
- DOM ID of form to observe
- array $options optional array()
- ajax options
Returns
ajax script
remoteFunction() public ¶
remoteFunction( array $options )
Creates JavaScript function for remote AJAX call
This function creates the javascript needed to make a remote call it is primarily used as a helper for AjaxHelper::link.
Parameters
- array $options
- options for javascript
Returns
html code for link to remote action
See
remoteTimer() public ¶
remoteTimer( array $options = null )
Periodically call remote url via AJAX.
Periodically calls the specified url (options[url]) every options[frequency] seconds (default is 10). Usually used to update a specified div (options[update]) with the results of the remote call. The options for specifying the target with url and defining callbacks is the same as AjaxHelper::link().
Parameters
- array $options optional null
- Callback options
Returns
Javascript code
See
slider() public ¶
slider( string $id , string $trackId , array $options = array() )
Makes a slider control.
Parameters
- string $id
- DOM ID of slider handle
- string $trackId
- DOM ID of slider track
- array $options optional array()
- Array of options to control the slider
Link
sortable() public ¶
sortable( string $id , array $options = array() )
Makes a list or group of floated objects sortable.
Parameters
- string $id
- DOM ID of parent
- array $options optional array()
- Array of options to control sort.
Link
submit() public ¶
submit( string $title = 'Submit' , array $options = array() )
Returns a button input tag that will submit using Ajax
Returns a button input tag that will submit form using XMLHttpRequest in the background instead of regular reloading POST arrangement. options argument is the same as in AjaxHelper::form().
Parameters
- string $title optional 'Submit'
- Input button title
- array $options optional array()
- Callback options
Returns
Ajaxed input button
See
Properties detail
$ajaxOptions ¶
Names of AJAX options.
array( 'after', 'asynchronous', 'before', 'confirm', 'condition', 'contentType', 'encoding', 'evalScripts', 'failure', 'fallback', 'form', 'indicator', 'insertion', 'interactive', 'loaded', 'loading', 'method', 'onCreate', 'onComplete', 'onException', 'onFailure', 'onInteractive', 'onLoaded', 'onLoading', 'onSuccess', 'onUninitialized', 'parameters', 'position', 'postBody', 'requestHeaders', 'success', 'type', 'update', 'with' )
$autoCompleteOptions ¶
Options for auto-complete editor.
array( 'afterUpdateElement', 'callback', 'frequency', 'indicator', 'minChars', 'onShow', 'onHide', 'parameters', 'paramName', 'tokens', 'updateElement' )
$callbacks ¶
Names of Javascript callback functions.
array( 'complete', 'create', 'exception', 'failure', 'interactive', 'loading', 'loaded', 'success', 'uninitialized' )
$dragOptions ¶
Options for draggable.
array( 'handle', 'revert', 'snap', 'zindex', 'constraint', 'change', 'ghosting', 'starteffect', 'reverteffect', 'endeffect', 'scroll', 'scrollSensitivity', 'onStart', 'onDrag', 'onEnd' )
$dropOptions ¶
Options for droppable.
array( 'accept', 'containment', 'greedy', 'hoverclass', 'onHover', 'onDrop', 'overlap' )
$editorOptions ¶
Options for in-place editor.
array( 'okText', 'cancelText', 'savingText', 'formId', 'externalControl', 'rows', 'cols', 'size', 'highlightcolor', 'highlightendcolor', 'savingClassName', 'formClassName', 'loadTextURL', 'loadingText', 'callback', 'ajaxOptions', 'clickToEditText', 'collection', 'okControl', 'cancelControl', 'submitOnBlur' )
$sliderOptions ¶
Options for slider.
array( 'alignX', 'alignY', 'axis', 'disabled', 'handleDisabled', 'handleImage', 'increment', 'maximum', 'minimum', 'onChange', 'onSlide', 'range', 'sliderValue', 'values' )
$sortOptions ¶
Options for sortable.
array( 'constraint', 'containment', 'dropOnEmpty', 'ghosting', 'handle', 'hoverclass', 'onUpdate', 'onChange', 'only', 'overlap', 'scroll', 'scrollSensitivity', 'scrollSpeed', 'tag', 'tree', 'treeTag', 'update' )