Génération du site web de l'ULB - format xml
sommairesommaireindexindexpage précédentepage précédentepage suivantepage suivanteimprimerimprimerenvoyerenvoyermarquermarquer

<interaction>: déclenchement d'actions à l'aide du formulaire

Placer 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.


Exemple d'<interaction>

Votre nom:

Code de cet 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>

Contenu de l'élément <interaction>

L'élément <interaction> peut contenir les sous-éléments suivants (ils ne sont pas obligatoires):

<paramètre>
<parameter>

crée un paramètre supplémentaire à envoyer à l'application distante. Ce paramètre viendra s'ajouter aux paramètres récoltés par le formulaire

<actions exécuter="...">

permet de déclencher des actions au moment de l'affichage de la page, avant l'envoi des données du formulaire ou après l'envoi des données du formulaire


L'élément <interaction> peut posséder les attributs suivants:

ancre

place une ancre sur l'action, afin de la distinguer des autres actions dans le cas où plusieurs actions coexistent dans le même formulaire

href
(ou tout autre attribut hypertexte)

donne l'adresse de l'application distante


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";
?>

Votre nom:


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;
?>
					

Nom:

Prénom:

ULB - entreprise écodynamique