|
Elcorsu 79
| Posté : 02-11-2009 21:52
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 |  Profil www Citation
|
|
Jireck 8502
| Posté : 03-11-2009 21:48
as tu lu le pdf qui se trouve dans le dossier sform ? |  Profil Citation
|
|
Elcorsu 79
| |
Elcorsu 79
| Posté : 04-11-2009 13:20
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 |  Profil www Citation
|
|
developpeur 24581
| |
Elcorsu 79
| Posté : 08-11-2009 18:58
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 |  Profil www Citation
|
|
developpeur 24581
| Posté : 09-11-2009 21:50
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.
|  Profil E-mail www Citation
|
|
Elcorsu 79
| Posté : 09-11-2009 22:05
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..... |  Profil www Citation
|
|
Elcorsu 79
| Posté : 09-11-2009 22:38
ok je crois avoir trouvé.
si ça paut servir
if (autorisation(3)) {....................}/// 3 étant l'ID du groupe
|  Profil www Citation
|
|
developpeur 24581
| |
Elcorsu 79
| Posté : 10-11-2009 01:47
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 |  Profil www Citation
|
|