Helper Ajax
Catégorie :
Helpers
L'helper Ajax utilise les célèbres libraries prototype et script.aculo.us.
Avant de pouvoir utiliser cet helper, vous devez récupérer la dernière version de scriptaculous et la placer dans votre dossier
app/webroot/js/.
Toutes les vues utilisant cet helper nécessiteront cette librairie.
La plupart des fonctions de cet helper nécessitent un argument
$options. Ce tableau permet de spécifier diverses options de vos éléments. En voici une liste non exhaustive :
$options['url'] // L'adresse de l'action qui doit être appellée
$options['frequency'] // Le nombre de secondes entre chaque appel à remoteTimer() ou à observeField()
$options['update'] // L'identifiant DOM de l'élément que vous souhaitez modifier avec l'opération.
$options['with'] // L'identifiant de l'élément que vous souhaitez serializer et envoyer avec l'appel Ajax
$options['type'] // Soit 'asynchronus' (défaut) ou 'synchronus'. Permet de continuer à naviguer dans la page pendant l'appel ou non.
$options['loading'] // Code JavaScript à executer lorsque le document est en cours de chargement
$options['loaded'] // Code JavaScript à charger lorsque le document a fini d'être chargé
$options['interactive'] // Code JavaScript à executer lorsque l'utilisateur peut interargir avec l'élément en cours de chargement
$options['complete'] // Code JavaScript à appeller lorsque le chargement est terminé
$options['confirm'] // Texte à afficher dans une boite de confirmation avant l'appel
$options['condition'] // Condition nécessaire à l'appel à la page
$options['before'] // Code executé avant l'appel à la page
$options['after'] // Code executé juste après l'appel à la page et avant 'loading'.
Et voici une liste des fonctions disponibles avec cet helper :
-
link
- string $title
- string $href
- array $options
- boolean $confirm
- boolean $escapeTitle
Affiche un lien avec le titre $title, faisant appel à l'adresse $options['url'] en y placant le contenu dans $options['update'].
Crée le code nécessaire à un appel externe. Rarement utilisé, excepté si vous souhaitez utiliser des scripts particuliers.
Appelle $options['url'] toutes les $options['frequency'] secondes (par défaut, 10). Et, si précisé, place le contenu retourné dans $options['update'].
-
form
- string $action
- string $type
- array $options
Retourne un tag de formulaire pointant vers $action, mais appellant la page via XMLHttpRequest au lieu du rechargement de page habituel.
Le format des éléments de ce formulaire est le même que le format habituel, spécifié dans l'
helper HTML.
-
observeField
- string $field_id
- array $options
Observe le contenu de $field_id toutes les $options['frequency'] secondes, et appelle $options['url'] si son contenu a changé.
-
observeForm
- string $form_id
- array $options
Fonctionne de la même manière que observeField, mais vérifie les valeurs de tous les éléments d'un formulaire.
-
autoComplete
- string $field
- string $url
- array $options
Retourne une liste d'éléments dans $field pour une autocomplétion. L'url appellée doit être capable de retourner les termes de l'autocompletion dans une liste (<ul><li>élément 1</li></ul>)
Pour laquelle chacun des élément est l'une des possibilités de l'autocomplétion.
-
drag
- string $id
- array $options
rends l'élément $id déplaçable dans la page. Vous pouvez spécifier les options suivantes :
// (Les numéros de version se réfèrent aux versions de scriptaculous)
$options['handle'] // (v1.0) Spécifie si l'élément est déplaçable lui même ou si un autre élément permet son déplacement
$options['handle'] // (V1.5) Similaire au précédent, mais peut contenir une classe CSS. Le premier élément correspondant trouvé sera l'handle.
$options['revert'] // (V1.0) Si définie à true, l'élément retourne à sa position originale une fois la souris relachée
$options['revert'] // (V1.5) Peut également être une fonction
$options['constraint'] // Si défini à 'horizontal' ou 'vertical', le déplacement ne sera possible que horizontalement ou verticalement.
-
drop
- string $id
- array $options
Rends l'éléments $id supprimable. Les options possibles sont :
$options['accept'] // L'élément n'acceptera que des éléments draggables possédant les classes CSS spécifiées
$options['containment'] // L'élément n'acceptera que les éléments draggables de l'idenfiant ou des identifiants spécifiés
$options['overlap'] // Si définie à horizontal ou vertical, le draggable ne sera supprimé que si son déplacement est supérieur à 50% de sa taille.
-
dropRemote
- string $id
- array $options
- array $ajaxOptions
Crée une fonction faisant un appel à XMLHttpRequest lorsqu'un draggable est supprimé. Les options sont les mêmes que pour les droppables, et
$ajaxOptions sont les mêmes que pour link().
-
sortable
- string $id
- array $options
Crée une liste d'objets triables. Les $options spécifiables sont celles-ci :
$options['tag'] // Définit le tag de chacun des tags. Pour un <ul> ou <ol>, doit être défini à li. Défaut : li.
$options['only'] // Limite les éléments de la ou des classes spécifiées à être triables
$options['overlap'] // Crée une liste verticale ou horizontale
$options['constraint'] // Restreint le mouvement des éléments à vertical ou horizontal.
$options['containment'] // Autorise le drag and drop sur les éléments spécifiés
$options['handle'] // Similaire à l'option handle de drag().
-
editor
- string $id
- string $url
- array $options
Crée un éditeur de texte avec l'élément spécifié. Il clignotera lorsque la souris passera dessus et se transformera en un champ de texte lorsque vous cliquerez dessus.
Le second paramètre est l'url à laquelle la valeur modifiée du champ est envoyée.