Fork me on GitHub




(1) 2 »


Checkboxs xoops
Supporter Xoops
Inscrit: 17/02/2005 20:25
Messages: 404
Bonjour à tous,

Arf ! y'a rien à faire. Je comprends comment fonctionnent les checkboxs dans un formulaire en "php classique", mais avec le composant xoops XoopsFormCheckBox, y' rien à faire, je pige pas.

Je suis en train de lister sur un formulaire les documents pédagogiques attachés à un article, avec une case à cocher à côté de chacun d'eux pour les supprimer.
Jusque là pas de prob (enfin j'espère), le code est le suivant :
$sql mysql_query("SELECT * FROM ".$xoopsDB->prefix(cotations_docpeds)." WHERE fid=$identifiant"); 
if (
mysql_num_rows($sql)>0) { 
    
$i=0;     $idcase "case".$i;     $docpeds = new XoopsFormCheckBox(_MI_COTATIONS_DOCPEDACTUEL"docped[]");
       while(
$donnees mysql_fetch_assoc($sql)){
     
$chemin $donnees['chemin'];
     
$chemin "<a href="../uploads/documents/".$chemin."" target="_blank">".$chemin."</a><br>";
     
$docpeds->addoption($i$chemin);     $i $i 1;
       }     
$my_form->addElement($docpeds);
 }


Mais dans ma page de destination, je n'arrive pas à récupérer les variables, rien à faire, l'objectif étant de créer une routine d'effacement pour chaque checkbox cochée.

Quelqu'un pourrait-il me donner un petit coup de main ?

Merci !

Posté le : 13/07/2011 19:46

http://www.deficulturel.net - Donnons un sens à  la culture !
http://www.lecran.fr - Devenez pixelligent !
http://www.sauvonslart.com - Un ...
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2588
Bonjour
-------------------------
Voici un début de réponse:
Citation :

$obChk = new XoopsFormCheckBox("test case à cocher", "chkTest",array(55,54), '<br />');

$obChk->addOption(55, 'Jean');
$obChk->addOption(12, 'Paul');
$obChk->addOption(54, 'Raoul');
$obChk->addOption(14, 'Marie');

$form->addElement($obChk, false);


le 1er paramètre est le libellé principal
Le 2eme paramètre est un nom pour les checkbox
le 3eme paramètre est une valeur ou un tableau de valeurs correspondant aux valeurs qui seront cochées (55 et 54 dans l'exemple)
Le 4eme paramètre est un séparateur qui sera affiché, par exemple '<br /> permettra d'avoir les cases en colonnes au lieu de les avoir en ligne.

Ensuite il faut ajouter toutes les checkbox avec la fonction "addoptions" ou "addOptionArray" (tableau associatif)
addOptions prend comme paramètres :
- la valeur (qui si elle est dans le tableau passe en paramètre permettra de cocher ou non la case).
- et le libellé affiché
ou addOptionArray: qui prend comme paramètre un tabeau associatif, exemple
Citation :
$obChk->addOptionArray(array(55 => 'Jean',
12 => 'Paul',
54 => 'Raoul',
14 => 'Marie'));


Le résultat récupéré dans la variable $_POST['chkTest'] est le tableau des valeur cochées.
Par exemple si "paul" et "raoul" sont cochés, le retour est le tableau array(12,54);

Pour ajouter une case qui coche tout, je ne sais pas encore, mais dans l’idée se serait de balayer tous les objets dont le nom est 'chkTest[]'

Je regarde si je trouve un exemple.

JJDAI

Posté le : 13/07/2011 21:41

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2588
re bonjour

Une première solution pour ajouter une case qui permet de tout cocher ou décocher:
Citation :
$obChk2 = new XoopsFormCheckBox("tout", "chkTestout");
$obChk2->addOption('tous');


$event = "onclick="var optionids = new Array('chkTest1', 'chkTest2', 'chkTest3', 'chkTest4'); xoopsCheckAllElements(optionids, 'chkTestout1');" ";


$obChk2->setExtra($event);

$form->addElement($obChk2, false);


ajout d'une nouvelle case à cocher avec un nom bidon.
On lui ajoute un extra.
La fonction setExtra permet d'ajouter un attribut a un objet.
Ici on y ajoute un événement sur le click avec 2 lignes de javascript (attention elles doivent être dans une chaine de caractère comme dans l'exemple (attention au quote et doubles quotes).

Le tableau doit contenir la liste des id des cases à cocher dont on veut changer les valeurs.
ces id sont générés avec le nom suivi d'un index par le xoopsform.
donc si il y a 5 cases dont le nom est 'chkTest' il faudra indique dans le tableau la liste suivante
'chkTest1','chkTest2','chkTest3','chkTest4','chkTest5'

Sur la 2eme ligne du javascript il ne faut pas oublier d'indiquer en 2eme paramètre l'id de la case "tout" 'chkTestout1" (nom + index 1) dans l’exemple;


Il y a peut être mieux à faire, mais ça fonctionne, je viens de le tester.

JJDAI



Posté le : 13/07/2011 22:51

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
bonjour,

et par la même occasion, remplacer les :
target="_blank"

par
rel="external"

pour forcer les liens dans un nouvel onglet ou fenêtre

Posté le : 13/07/2011 23:17

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Supporter Xoops
Inscrit: 17/02/2005 20:25
Messages: 404
Franchement les gars, merci

Vous m'en donnez même plus que ce que je demandais.

Pour JJDAI, merci beaucoup pour la case tout cocher ou tout décocher. Je suis pas fan fan du javascript. C'est un langage simple, mais j'ai remarqué qu'il arrivait que des gens interdisent le javascript dans leur navigateur. Or ce formulaire a vocation à être parcourus par mes journalistes, mes modérateurs et mes correcteurs, ce qui fait du monde. Mais bon... à la limite pourquoi pas.
Pourquoi n'es-tu pas persuadé qu'intégrer ton script dans le module est une bonne idée ?

Pour Kris, quelle est la différence entre les deux ?

J'essaie tout ça et je vous tiens au courant !

Merci !

Posté le : 14/07/2011 00:24

http://www.deficulturel.net - Donnons un sens à  la culture !
http://www.lecran.fr - Devenez pixelligent !
http://www.sauvonslart.com - Un ...
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
Citation :
ninjodo a écrit :
Pour Kris, quelle est la différence entre les deux ?

juste de validation w3c, et "target" n'est pas spécialement apprécié par les robots de référencement

Posté le : 14/07/2011 01:25

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Supporter Xoops
Inscrit: 17/02/2005 20:25
Messages: 404
Ok. Merci pour l'info.

Maintenant que j'ai compris le composant xoops pour les checkboxs (merci JJDAI :roll: ) ça fonctionne parfaitement.

Merci !

Posté le : 14/07/2011 01:31

http://www.deficulturel.net - Donnons un sens à  la culture !
http://www.lecran.fr - Devenez pixelligent !
http://www.sauvonslart.com - Un ...
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2588
Bonjour
Citation :
Pourquoi n'es-tu pas persuadé qu'intégrer ton script dans le module est une bonne idée ?

dans les la gestion dans permissions.
Il eu été préférable que ce soit une option du xoopsFormCheckBox avec un paramètre genre $addCheckall (true ou false) ou mieux encore un paramètre de la fonction "->addOption($value, $caption, $checkAll)" ce qui permettrait de la mettre en premier ou en dernier, et surtout qu'elle fasse partie de l'ensemble et non pas qu'elle ressemble à une petite verrue rajoutée.

Quand à la désactivation du javascript, perso je pense qu'aujourd'hui ce langage (pas si simple en tout cas très puissant) est incontême ci le CSS peut palier dans certains cas;
Et surtout pas d'Ajax, donc pas de jQuery, .....

De plus il me semble que désactiver le javascrit pour éviter notamment les trous de sécurité est un peu une erreur, à la base je crois que c'est plus une affaire de script php, d’injection sql par exemple, ou de contrôle de droits des l’utilisateur (par exemple laisser la saisie de commentaire au groupe anonymous).

Mais il est un fait que certaines organisation bloque le javascript, hélas.


JJDAI

Posté le : 14/07/2011 08:43

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Team FrXoops
Inscrit: 14/05/2004 22:32
Messages: 2588
bonjour
----------------
Comme j'en avais besoin pour moi, j'ai Créer la classe XoopsFormCheckBoxAll qui hérite de XoopsFormCheckBox.
Elle permet d'ajouter une case à cocher "tout" qui permet de cocher ou décocher toutes les cases du groupe.

Téléchargement sur le SVN

JJDAI


Posté le : 14/07/2011 14:04

Ne pas perdre patience, même si cela semble impossible, c'est déjà de la patience.
Origami
Conseil des Sages
Sur gitHub
Partager Twitter Partagez cette article sur GG+
Re: Checkboxs xoops
Supporter Xoops
Inscrit: 17/02/2005 20:25
Messages: 404
ok mais je parlais du composant pour uploader des fichiers, que je pensais intégrer à mon module.

Posté le : 14/07/2011 20:54

http://www.deficulturel.net - Donnons un sens à  la culture !
http://www.lecran.fr - Devenez pixelligent !
http://www.sauvonslart.com - Un ...
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

288 Personne(s) en ligne (263 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 288 | Plus ...