Les fonctions Jaxon utilisent un objet de la classe Jaxon\Response\Response
, pour définir une liste de commandes à exécuter dans le navigateur.
Ces commandes peuvent réaliser 3 types d'opérations dans une page web.
- Modifier le contenu de la page
- Modifier la présentation de la page avec CSS
- Exécuter du code javascript dans la page
Bien que la classe Jaxon\Response\Response
implémente un riche ensemble de fonctions, il est possible de lui en ajouter à l'aide de plugins.
Modifier le contenu et le style de la page
Les fonctions suivantes servent à modifier le contenu ou le style d'une page web.
Les fonctions de ce groupe, à l'exception de bind()
, sont également présentes dans la classe Jaxon\Response\NodeResponse
, mais sans le paramètre string $sTarget
.
// Affecter la valeur spécifiée à un attribut d'un élément donné
assign(string $sTarget, string $sAttribute, string $sValue)
// Affecter le contenu HTML spécifié à un élément donné
html(string $sTarget, string $sValue)
// Affecter la valeur spécifiée à un attribut CSS d'un élément donné
style(string $sTarget, string $sCssAttribute, string $sValue)
// Ajouter la valeur spécifiée à la fin d'un attribut d'un élément donné
append(string $sTarget, string $sAttribute, string $sValue)
// Ajouter la valeur spécifiée au début d'un attribut d'un élément donné
prepend(string $sTarget, string $sAttribute, string $sValue)
// Remplace la valeur spécifiée par une autre dans un attribut d'un élément donné
replace(string $sTarget, string $sAttribute, string $sSearch, string $sValue)
// Effacer la valeur d'un attribut d'un élément donné
clear(string $sTarget, string $sAttribute)
// Supprimer l'élément spécifié du document
remove(string $sTarget)
// Attacher un composant à un élément donné
bind(string $sTarget, Jaxon\Script\JxnCall $xCall, string $sItem = '')
Pour modifier le contenu, le paramètre $sAttribute
prend la valeur innerHTML
ou outerHTML
.
$response->assign('message-id', 'innerHTML', 'Jaxon is cool');
Pour modifier le style, le paramètre $sCssAttribute
prend pour valeur l'attribut CSS à modifier.
$response->style('message-id', 'color', 'blue');
Exécuter du code javascript dans la page
Ces fonctions permettent soit d'exécuter directement du code javascript, soit de le lier à un évènement sur la page.
Les fonctions de ce groupe sont également présentes dans la classe Jaxon\Response\NodeResponse
.
// Appeler la fonction javascript spécifiée avec les paramètres (optionnels) donnés
call(string $sFunction)
// Exécuter l'expression json spécifiée
exec(JsExpr $xJsExpr)
// Poser une question à l'utilisateur avec une fenêtre de type [ok] [cancel]
confirm(Closure $fConfirm, string $sQuestion, array $aArgs = [])
// Afficher un message d'alerte
alert(string $sMessage, array $aArgs = [])
// Afficher un message de debug
debug(string $sMessage)
// Rediriger le navigateur vers l'URL spécifiée
redirect(string $sURL, int $nDelay = 0)
// Mettre l'exécution des commandes de réponse en pause
sleep(int $tenths)
La fonction confirm()
prend en paramètre une callback et une question à poser à l'utilisateur.
La callback prend en paramètre un objet Jaxon\Response\Response
, et les commandes ajoutées à cet objet ne seront exécutées que si l'utilisateur répond oui à la question.
public function doThis()
{
$this->response->confirm(function($response) {
$response->style('element-id', 'color', 'blue');
}, 'Set the element color to blue?');
}
Fonctions dépréciées
Deux groupes de fonctions ont été dépréciées: celles qui ajoutent ou suppriment un bloc de contenu dans une page web, et celles qui lient des fonctions Javascript à un évènement sur la page.
// Créer un nouvel élément dans le document
create(string $sParent, string $sTag, string $sId)
// Insérer un nouvel élément avant l'élément spécifié
insert(string $sBefore, string $sTag, string $sId)
// Insérer un nouvel élément après l'élément spécifié
insertAfter(string $sAfter, string $sTag, string $sId)
// Supprimer l'élément spécifié du document
remove(string $sTarget)
// Définir un gestionnaire d'évènement sur l'élément spécifié
setEvent(string $sTarget, string $sEvent, string $sScript)
// Définir un gestionnaire pour l'évènement "onclick" sur l'élément spécifié
onClick(string $sTarget, string $sScript)
// Installer un gestionnaire d'évènement sur l'élément spécifié
addHandler(string $sTarget, string $sEvent, string $sHandler)
// Supprimer un gestionnaire d'évènement sur l'élément spécifié
removeHandler(string $sTarget, string $sEvent, string $sHandler)
Les fonctions de templates doivent être utilisées à la place.