logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
31 visiteur(s) et 1 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 108 394 688

  • Nb. de membres 8 693
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  SFORM »» cacher des champs dans un formulaire

Nouveau sujet
 cacher des champs dans un formulaire#24549Répondre

3Contributeur(s)
ElcorsudeveloppeurJireck
3 Modérateur(s)
developpeurjpbJireck
Elcorsu Elcorsuicon_post
Voila mon problème.
J'ai fait un formulaire avec sform qui modifie ma base de donnée (style modification membre dans NPDS)
J'aimerai que des champs apparaissent ou disparaissent en fonction du groupe qui y accède.
Le problème si je fais un bout de code comme celui-ci.Si la condition n'est pas remplie les champs adresse1 et email se mettent à 0 dans ma base de données les données initiales ne sont pas concervées.
y'a t-il un moyen de faire disparaitre les champs tout en concervant la transmition de toutes les données add_.. au document demandeur?



$ok_Staff_administratif=groupe_autorisation(2, $tab_groupeX);  // Autorisation Staff administratif
$ok_Staff_technique=groupe_autorisation(3, $tab_groupeX);// Autorisation Staff technique

$m->add_field('add_nom', "Nom","$chng_nom",'text',true,60,"","A-9");
$m->add_field('add_prénom', "Prénom","$chng_prénom",'text',true,60,"","");

If($ok_Staff_technique) {
$m->add_field('add_Email', "E-mail","$chng_Email",'text',false,60,"","mail");
$m->add_field('add_adresse1', "Adresse 1","$chng_adresse1",'text',false,60,"","");
........
}
$m->add_field('add_adresse2', "Adresse 2","$chng_adresse2",'text',false,60,"","");



Message édité par : Elcorsu / 02-11-2009 21:54

Jireck Jireckicon_post
as tu lu le pdf qui se trouve dans le dossier sform ?
Elcorsu Elcorsuicon_post
oui tout à fait mais je ne possède pas toutes les connaissances pour pouvoir l'exploiter à 100%.
Je ne sais pas quelle fonction choisir pour pouvoir réaliser ce que décrit plus haut.
la $variable_que_l'on_veut_conserver est amenée au formulaire par une fonction post ou get
peut-on écrire:

add_extra($variable_que_l'on_veut_conserver)
ou $m=$variable_que_l'on_veut_conserver
ou ?
Si tu peux éclairer ma lanterne... ;-)

Message édité par : Elcorsu / 03-11-2009 23:17

Elcorsu Elcorsuicon_post
ou:


$ok_Staff_administratif=groupe_autorisation(2, $tab_groupeX);  // Autorisation Staff administratif
$ok_Staff_technique=groupe_autorisation(3, $tab_groupeX);// Autorisation Staff technique

$m->add_field('add_nom', "Nom","$chng_nom",'text',true,60,"","A-9");
$m->add_field('add_prénom', "Prénom","$chng_prénom",'text',true,60,"","");

If($ok_Staff_technique) {
$m->$chng_Email;
$m->$chng_adresse1;
}  

If($ok_Staff_administratif) {
$m->add_field('add_Email', "E-mail","$chng_Email",'text',false,60,"","mail");
$m->add_field('add_adresse1', "Adresse 1","$chng_adresse1",'text',false,60,"","");
}





Message édité par : Elcorsu / 04-11-2009 13:22

developpeur developpeuricon_post
c'est toujours d'actualité ?
Elcorsu Elcorsuicon_post
et bien oui,
Toujours pas trouvé la solution sauf de modifier les demandes SQL dans le document pricipal et de recréer un autre formulaire mais je pense qu'il doit y avoir + simple...
Merci à qui peut me renseigner
developpeur developpeuricon_post
Citation : Elcorsu 

oui tout à fait mais je ne possède pas toutes les connaissances pour pouvoir l'exploiter à 100%.
Je ne sais pas quelle fonction choisir pour pouvoir réaliser ce que décrit plus haut.
la $variable_que_l'on_veut_conserver est amenée au formulaire par une fonction post ou get
peut-on écrire:

add_extra($variable_que_l'on_veut_conserver)
ou $m=$variable_que_l'on_veut_conserver
ou ?
Si tu peux éclairer ma lanterne... ;-)

Message édité par : Elcorsu / 03-11-2009 23:17

 

Nonon ne peut pas faire comme cela. Il faut créer un champ de formulaire de type hidden pour faire passer ta variable du formulaire à ton script.
Elcorsu Elcorsuicon_post
ok je vais refaire une partie du formulaire en utilisant les add_field()qui sont les seuls a accepter les hidden, pour passer mes variables quand le membre n'est pas autorisé dans le groupe et les rendre visibles pour les membres autoriser.

Par contre j'ai vu que j'ai fait une erreur:

Pour autoriser un user en fonction de ses groupes en passant par le cookies.
par exemple je veux que le user normal ne voit pas une partie du formulaire alors que l'user appartenant au groupe ID=3 puisse le voir.
comment aboutir au if ($ok) {......} else..... :-?
Elcorsu Elcorsuicon_post
ok je crois avoir trouvé.
si ça paut servir

if (autorisation(3)) {....................}/// 3 étant l'ID du groupe

developpeur developpeuricon_post
:=!
Elcorsu Elcorsuicon_post
ok ça marche il faut transformer tous les champs qui suivent la condition en add_field comme ceci et utiliser xor dans la condition pour ne pas avoir un double affichage pour les membres faisant parti du groupe 2 et 3:


if ((autorisation(2)) xor (autorisation(3))) {
$m->add_form_field_size(60);
$m->add_field('add_nom', "Nom","$chng_nom",'hidden',false);
$m->add_field('add_prénom', "Prénom","$chng_prénom",'hidden',false);
$m->add_field('oui', "Inscrit pour cette saison","$oui",'hidden',false);
$m->add_field('add_Email', "E-mail","$chng_Email",'hidden',false);
$m->add_field('add_adresse1', "Adresse 1","$chng_adresse1",'hidden',false);
$m->add_field('add_adresse2', "Adresse 2","$chng_adresse2",'hidden',false);
$m->add_field('add_postal', "Code Postal","$chng_postal",'hidden',false);
$m->add_field('add_ville',"Ville","$chng_ville",'hidden',false);
$m->add_field('add_tel_fixe', "Téléphone fixe","0$chng_tel_fixe",'hidden',false);
$m->add_field('add_tel_gsm', "Téléphone GSM","0$chng_tel_gsm",'hidden',false);
$m->add_field('add_profession', "Profession","$chng_profession",'hidden',false);
$m->add_field('add_naissance', "Date de naissance","$chng_naissance",'hidden',false);
$m->add_field('add_lieu', "Lieu de naissance","$chng_lieu",'hidden',false);
$m->add_field('add_licence', "N° Licence","$chng_licence",'hidden',false);
$m->add_field('add_medical', "Date certificat médical","$chng_medical",'hidden',false);
$m->add_field('add_assurance', "Assurance","$chng_assurance",'hidden',false);
}
if (autorisation(3)) {  
$m->add_mess("* Désigne un champ obligatoire");
$m->add_form_field_size(60);
$m->add_field('add_nom', "Nom","$chng_nom",'text',true,60,"","A-9");
$m->add_field('add_prénom', "Prénom","$chng_prénom",'text',true,60,"","");
if ($oui) {$checked=true;} else {$checked=false;}
$m->add_checkbox('oui',"Inscrit pour cette saison", 1, false, $checked);



Message édité par : Elcorsu / 10-11-2009 01:51