PEAR logo

HTML_QuickForm_advmultiselect : La Référence



Compteurs de sélection dynamique

Introduction
Identification et localisation

Introduction

Lorsque les listes à sélection comporte de nombreux élément, il devient fastidieux de devoir compter à la main le nombre d'occurence dans chaque liste.

Alors qu'il est si facile d'effectuer le comptage coté serveur, une fois le formulaire transmis, rien ne permettait jusqu'à la venue de la fonction "compteurs de sélection dynamique", d'afficher en temps réel le nombre des occurences sélectionnées, et non encore sélectionnées.

[Important] Important
Cette fonctionnalité nécessite le paquet HTML_QuickForm_advmultiselect version 1.3.0 ou supérieur.

Un exemple complet est fourni dans les annexes. Voir les compteurs dynamiques sur plusieurs éléments.

Identification et localisation

La mise en place de l'affichage des compteurs d'occurence déjà sélectionnées et non encore sélectionnées, est complètement indépendante. Elle requière pour chacun des compteurs d'ajouter de nouveaux marqueurs.

Pour les occurences non encore sélectionnées, ces marquages sont :

  • {unselected_count} pour la localisation (où la valeur s'affiche)
  • {unselected_count_id} pour l'identification par l'API DOM (attribut ID de la balise HTML choisie)

Pour les occurences sélectionnées, ces marquages sont :

  • {selected_count} pour la localisation (où la valeur s'affiche)
  • {selected_count_id} pour l'identification par l'API DOM (attribut ID de la balise HTML choisie)
[Note] Note
  1. <?php
  2. require_once 'HTML/QuickForm.php';
  3. require_once 'HTML/QuickForm/advmultiselect.php';
  4. // ...
  5. $form = new HTML_QuickForm('amsLC');
  6. $ams =& $form->addElement('advmultiselect', 'cars', null, $car_array);
  7. // ...
  8. ?>

Les identificateurs des compteurs (attribut ID) utilisable par l'API DOM seront constitués par le nom de l'élément advmultiselect concaténé avec le suffixe "_selected" ou "_unselected" en fonction des listes.

Résultat pour l'exemple (code ci-dessus) : cars_selected ou cars_unselected

Les éléments advmultiselect sous la forme de mono liste (avec case à coché) seront identifiés par le préfixe "qfams_" et le nom de l'élément advmultiselect

Résultat pour l'exemple (code ci-dessus) : qfams_cars

Quant aux éléments advmultiselect sous la forme de liste double, ils seront identifiés par le préfixe "__" (deux tirets bas) et le nom de l'élément advmultiselect pour la liste des occurences restant encore à sélectionner. Alors que la liste des éléments déjà sélectionnés sera identifié par le préfixe "_" (un tiret bas) et le nom de l'élément advmultiselect

Résultat pour l'exemple (code ci-dessus) : __cars et _cars

[Important] Important

Les éléments advmultiselect sous la forme de mono liste (avec case à coché) sont identifiés par l'API DOM grâce aux seuls marquages {selected_count} et {selected_count_id}. Il est inutile d'indiquer la présence des marqueurs {unselected_count} et {unselected_count_id}.

Voir pour exemple en annexe les compteurs dynamiques sur plusieurs éléments, et la définition du mini-gabarit $template1 aux lignes 49-57.

HTML_QuickForm_advmultiselect : La Référence v 1.4.0 : 9 Juin 2007