<interaction>: déclenchement d'actions à l'aide du formulairePlacer un sous-élément <interaction> tout au début de l'élément <formulaire> permettra de déclencher des actions lors de l'envoi des données du formulaire. Ces actions peuvent provenir d'une application distante, qui recevra toutes les données récoltées par le formulaire. Cette application, écrite en PHP par exemple, va répondre non pas avec du code HTML (comme c'est le cas avec un élément <action>), mais avec une chaîne de caractères contenant les actions à exécuter séparées par des virgules ou des retours à la ligne (consultez la documentation sur les éléments <interaction> pour plus d'informations). L'application en question sera mentionnée grâce à un attribut de type hypertexte (le plus souvent href). L'appel à l'application se fera en Ajax, en utilisant la méthode post.
Contenu de l'élément <interaction>L'élément <interaction> peut contenir les sous-éléments suivants (ils ne sont pas obligatoires):
L'élément <interaction> peut posséder les attributs suivants:
|
Cet exemple utilise une action de formulaire <interaction>, qui sera déclenchée si vous cliquez sur le bouton Envoyer. Elle appellera une application PHP hello.php, qui va renvoyer une ou plusieurs actions qui seront exécutées sans que le navigateur ne quitte la page courante. Exemple <formulaire> <interaction href="http://www.ulb.ac.be/sitemanagerapps/samples/hello.php"/> <input> <nom>nom</nom> <libellé>votre nom</libellé> <valeur>Séraphin Lampion</valeur> </input> <bouton> <libellé>Envoyer</libellé> </bouton> </formulaire> Cette application, dont le code est donné ci-dessous, retourne une chaîne de caractères (text/plain en utilisant le codage de caractères UTF-8) contenant une liste d'actions. Dans cet exemple, une seule action alerte(...) est présente. Elle affichera un message dans une boîte de dialogue, dont le contenu fait appel à un des paramètres récoltés par le formulaire ({form:nom}). Exemple <?php header('Content-Type: text/plain;charset=UTF-8'); header("Access-Control-Allow-Origin: *"); echo "alerte(hello {form:nom} !)\n"; ?> |
Dans ce deuxième exemple, l'élément <interaction> fait usage d'un ensemble de paramètres appelé set. L'application va renvoyer une action ajouter:reverse=xxxx destinée à créer un paramètre reverse dans cet ensemble (il contiendra le nom et le prénom récoltés dans le formulaire et écrits à l'envers grâce à la fonction strrev(...) de PHP). Après l'appel à l'application, l'action finaliser:set sera appelée pour finaliser l'ensemble de paramètres, ainsi que l'action alerte(...) qui affichera la valeur de ce paramètre dans une boîte de dialogue (l'ensemble étant finalisé, le paramètre peut être utilisé en écrivant {set:reverse}). Exemple <formulaire style="voile" bords="arrondis">
<interaction href="http://www.ulb.ac.be/sitemanagerapps/samples/reverse.php" set="set">
<actions exécuter="après">
finaliser:set,
alerte(votre nom à l'envers: {set:reverse})
</actions>
</interaction>
<input>
<nom>lastname</nom>
<libellé>nom</libellé>
</input>
<input>
<nom>firstname</nom>
<libellé>prénom</libellé>
</input>
<bouton>
<nom>go</nom>
<libellé>Envoyer</libellé>
</bouton>
</formulaire> L'application PHP qui est appelée contient le code suivant: Exemple <?php header('Content-Type: text/plain;charset=UTF-8'); header("Access-Control-Allow-Origin: *"); $first = strtolower($_REQUEST["firstname"]); $last = strtolower($_REQUEST["lastname"]); $msg = rawurlencode("ajouter:reverse=".strrev($first)." ".strrev($last))."\n"; echo $msg; ?> |