HTML_QuickForm_advmultiselect : La Référence |
2.1. Questions générales |
||||||||||
|
||||||||||
2.1.1. |
Combien cela coute ? |
|||||||||
Vous pouvez télécharger et utiliser ce paquetage gratuitement. Mais surtout ne supprimer pas les termes de la license et les noms de ceux qui ont contribués à son existance. Vous pouvez lire les termes (en anglais) de la license |
||||||||||
2.1.2. |
Est-ce que vous offrez un support technique ? |
|||||||||
OUI, mais seulement si la réponse n'est pas déjà dans ce guide et si vous êtes prêt à partager certaines informations comme : votre configuration (plateforme Win *nix mac, PHP version, paquetages PEAR installés) et peut être le code source de votre implémentation . |
||||||||||
2.1.3. |
J'ai trouvé un bogue, que dois je faire ? |
|||||||||
Vous pouvez créer un rapport avec l'outils de suivi des erreurs sur le site de PEAR. |
||||||||||
2.1.4. |
Qu'est-ce que HTML_QuickForm ? |
|||||||||
HTML_QuickForm est un paquetage de PEAR qui fournit des méthodes pour créer, valider et traiter des formulaires HTML. Le but du tutoriel de Keith Edmunds est de donner, aux nouveaux utilisateurs de QuickForm, un aperçu des caractéristiques et des modèles d'utilisation à suivre. Il décrit un petit échantillon des fonctions disponibles. N'oubliez pas de lire aussi le manuel de PEAR, relatif au sujet HTML_QuickForm. |
||||||||||
2.1.5. |
Qu'est-ce que PEAR ? |
|||||||||
PEAR (abbréviation de PHP Extension and Application Repository) est un cadre de développement et de distribution structuré de code source libre pour les utilisateurs de PHP. N'oubliez pas de lire aussi le manuel de PEAR et sa Foire Aux Questions. |
||||||||||
2.2. Comment faire |
||||||||||
2.2.1. |
Puis je utiliser HTML_QuickForm_advmultiselect si mon navigateur ne supporte pas javascript ou si celui-ci est désactivé ? |
|||||||||
La représentation sous forme de deux listes ne fonctionnera pas, mais vous pouvez afficher le modèle avec une seule liste constituée de case à cocher. Pour cela, vous devez retirer le marquage {unselected} dans le template de l'élément advmultiselect. |
||||||||||
2.2.2. |
Comment effectuer la validation d'un élément HTML_QuickForm_advmultiselect ? |
|||||||||
Vous devez utiliser la méthode HTML_QuickForm addGroupRule() plutôt que la méthode HTML_QuickForm addRule() . Voir l'exemple sur utilisation avec un moteur de gabarit. |
||||||||||
2.2.3. |
Comment optimiser l'usage du code javascript dans les pages html ? |
|||||||||
Si vous avez plus d'un élément advmultiselect dans vos pages html, alors utiliser une seule référence du code javascript et supprimer les autres.
Une meilleure solution serait d'utiliser un lien vers une ressource externe et ainsi reduire le code javascript embarqué. Ajoutez la ligne de code suivante entre les balises <head> de vos pages html. <script type="text/javascript" src="qfamsHandler.js"></script>
Enfin supprimez le marqueur
|
||||||||||
2.3. Guide de dépannage |
||||||||||
2.3.1. |
Mon élément Quickform advmultiselect n'apparait pas à l'écran de mon navigateur. |
|||||||||
Vous avez tout simplement oublié d'ajouter la ressource du paquet lui-même. Cette opération est nécessaire pour tout élément Quickform étendu qui n'est pas un élément interne, tel que "radio", "checkbox", "text", "button", etc ...
|
||||||||||
2.3.2. |
Mon compteur dynamique n'est pas mis à jour quand je clique sur les cases à coché des éléments sélectionnable ? |
|||||||||
Avec HTML_QuickForm_advmultiselect version 1.3.0 ou supérieur vous aurez besoin d'un morceau de code javascript pour faire l'initialisation des gestionnaires d'évènement de chacune des cases à coché <script type="text/javascript" src="qfamsHandler.js"></script> <script type="text/javascript"> window.qfamsName = new Array(); window.qfamsName[0] = 'cars'; window.qfamsName[1] = 'fruit'; window.addEventListener('load', qfamsInit, false); </script>
|
||||||||||
2.3.3. |
La liste de sélection a une option (ligne) à blanc que l'on peut déplacer. |
|||||||||
Ce problème arrive quand la liste de sélection est chargée avec un mauvais tableau de donnée (voir méthode HTML_QuickForm::setDefaults() ). Souvenez-vous que la liste des options disponibles contient toutes les données (sélectionnées ou non). Cette liste est un tableau associatif "key-code" => "display-value". Alors que la liste de sélection est une liste comportant seulement les valeurs de "key-code". Supposons que nous ayons à retrouver des utilisateurs dans une base de donnée (avec PEAR::DB), avec une simple table conservant les informations. La requête SQL suivante crée une table dans la database par défaut en utilisant le RDBMS, MySQL: CREATE TABLE user ( userid VARCHAR(5) NOT NULL, gid INT NOT NULL, affect INT NOT NULL, lastname VARCHAR(50)NOT NULL, firstname VARCHAR(50) NOT NULL, PRIMARY KEY (userid) ); dont le contenu est : INSERT INTO user VALUES ('MJ001', 1, 0, 'Martin', 'Jansen'); INSERT INTO user VALUES ('BG001', 1, 1, 'Greg', 'Beaver'); INSERT INTO user VALUES ('CD001', 1, 0, 'Daniel', 'Convissor'); INSERT INTO user VALUES ('LL001', 2, 1, 'Laurent', 'Laville'); la colonne gid identifie un groupe d'utilisateur, alors que la colonne userid identifie une personne unique. Nous allons initialiser la liste des options en attente (à gauche si gabarit par défaut) par une requête comme celle ci :
et obtenir le tableau suivant : Array ( [MJ001] => Jansen Martin [BG001] => Beaver Greg [CD001] => Convissor Daniel ) Nous allons initialiser la liste des sélections (à droite si gabarit par défaut) par une requête comme celle ci :
et obtenir le tableau suivant : Array ( [0] => BG001 )
Le reste à mettre en place est assez simple, il suffit de
créer un élement QFAMS, et de charger les options (en attente
et déjà sélectionnées) avec la méthode
|
HTML_QuickForm_advmultiselect : La Référence | v 1.4.0 : 9 Juin 2007 |