J'ai besoin de modifier le formulaire d'enregistrement d'un nouvel utilisateur de manière à ce qu'il soit dans l'obligation de choisir son appartenance à un groupe au moment de son inscription.
J'ai donc fait ceci :
dans formulaire. php - ligne 22 (juste avant //---AVATAR)
/**************************/
/* Ajout pour groupe */
/*************************/
$tmp=array(
"Cycliste"=>array('en'=>"Cycliste", 'checked'=>true),
"Marcheur"=>array('en'=>"Marcheur", 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>"Les deux", 'checked'=>false)
);
$m->add_radio('user_group', 'Votre catégorie *', $tmp,false);
/******************/
/* Fin de l'ajout */
/******************/
:=! le choix s'affiche bien
dans aff_formulaire.php - ligne 22 (juste avant //---AVATAR)
/**************************/
/* Ajout pour groupe */
/*************************/
$m->add_field('user_group', 'Votre catégorie',"$tmp",'text',false,25,"","");
/********************/
/* Fin de l'ajout */
/*******************/
:=! L'option choisie est bien affichée
dans user.php : function finishNew User (après la ligne 205 -
juste avant les instructions d'ajout dans users_status
/**************************/
/* Ajout pour groupe */
/*************************/
$user_group="10,20";
switch ($tmp) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
/***************/
/* Fin d'ajout */
/**************/
if (($AutoRegUser==1) or (!isset($AutoRegUser))) {
$result = mysql_query("insert into users_status values ('$usr_id','0','$attach','0','1','1','$user_group')");
} else {
$result = mysql_query("insert into users_status values ('$usr_id','0','$attach','0','1','0','$user_group')");
}
:paf La ca va plus car ca enregistre toujours "10,20", donc j'ai perdu la valeur de $tmp :-?
J'ai essayé en modifiant les fonctions et appels en ajoutant $tmp comme argument ... mais bernique.
Doit y avoir quelque chose que j'ai pas compris ou mal fait.
Merci de votre aide car j'ai vraiment besoin de cette modif.
Bon AM à tous.
Philippe
Tribal-Dolphin
Faut aussi ajouter ta variable dans hidden_form.
si tu ne le fait pas, la variable se perds en chemin.
PhilGuen
J'ai donc rajouté après la ligne 125
mais :-| :-| :-|
c'est toujours pas bon
Merci de votre aide
PhilGuen
Dev Tito, GiamDoc, tout le monde
help me ...............
j'aurais beaucoup besoin de cette modif et je ne m'en sors pas. Je ne connais pas assez le fonctionnement de NPDS
merci d'avance
Amitiés
Philippe
Tito
Il ne faudrait pas plutot mettre des IF ???
Avec des IF [séléctionné] case [numéro] ?
Enfin, je ne suis pas un boss en PHP et je n'ai pas encore essayé le MySQL... :=!
developpeur
**************************/
/* Ajout pour groupe */
/*************************/
$user_group="10,20"; <<======= cette ligne de sert à quoi ?????
switch ($tmp) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
/***************/
/* Fin d'ajout */
/**************/
A suivre
PhilGuen
Merci DEV, j'ai grand besoin de ton aide.
3 choix possible :
cycliste = groupe 10
marcheur = groupe 20
les deux = groupe 10,20
donc :
$user_group="10,20" (valeur par défaut)
puis je change $user_group en fonction de $tmp
si $tmp="Cycliste" =>$user_group="10"
si $tmp="Marcheur" => $user_group="20"
donc $user_group reste "10,20" si on n'a choisi ni Cycliste ni Marcheur
En fait ca remplace un troisième case $tmp="Cycliste & Marcheur" =>$user_group="10,20" ou un else si j'employais une structure if ... elseif ... else
Bon, c'est pas très académique, mais ca permet de fonctionner en cas d'erreur dans ma modif. (ce qui est bien le cas en ce moment)
D'ailleur, pour être cohérant, il aurait fallu que dans formulaire.php je fasse plutôt
[ Message édité par : Tribal-Dolphin : 19-03-2004 08:42 ]
PhilGuen
Je suis désolé Tribal, je ne comprends pas (boulet du jour?)
Je n'ai pas touché à sform.php
j'ai modifié formulaire.php, aff_formulaire.php et user.php
dans user.php,j'ai modifié le test avant l'enregistrement et j'ai remplacé
$user_group="10,20";
switch ($tmp_group) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
par
if ($tmp_group="Cycliste"){
$user_group='10';
}elseif ($tmp_group="Marcheur"){
$user_group='20';
}else{
$user_group='10,20'
Pour moi ca devrait être la même chose, mais dans le 1° cas $user_group enregistre toujours "10,20" et dans le 2° cas toujours "10".
:paf :paf :paf :paf :paf je n'y comprends plus rien.
Tribal-Dolphin
Quand je je parle de SFROM c'est pas le fichier sform.php mais le formulaire créer grace à SFORM, dans ton cas : formulaire.php, aff_formulaire.php
As tu fait la modif donné dans le formulaire ?
(
$tmp=array(
"Cycliste"=>array('en'=>'10', 'checked'=>true),
"Marcheur"=>array('en'=>'20', 'checked'=>false),
"Cycliste & Marcheur"=>array('en'=>'10,20', 'checked'=>false)
);
)
PhilGuen
Oui et j'ai remplacé $tmp par $tmp_group.
Mais il y a qq chose de fondamental que je ne pige pas :
pour moi
$user_group="10,20";
switch ($tmp_group) {
case "Cycliste" :
$user_group="10";
break;
case "Marcheur" :
$user_group="20";
break;
}
ca doit faire pareil que
if ($tmp_group="Cycliste"){
$user_group='10';
}elseif ($tmp_group="Marcheur"){
$user_group='20';
}else{
$user_group='10,20'
}
:paf et ben non :paf
le 1) attribue toujours '10,20' à $user_group et le 2) toujours '10', quelque soit le choix qui a été fait dans le formulaire.
Je vais essayer de mettre la condition + haut (dans aff_formulaire).
---------
3°) dans aff_formulaire, tout de suite après les lignes précédentes j'ai ajouté
echo "groupe : ".$tmp_group;
echo " URL : ".$url;
pour tester les valeurs des variables.
et la, j'ai bien une valeur pour $url mais je n'ai plus rien pour $tmp_group
J'ai donc déjà perdu $tmp_group entre la saisie (formulaire.php) et l'affichage de confirmation (aff_formulaire.php). :-| :-|
Qu'est-ce que j'ai loupé? Un global $tmp_group quelque part? :-?
Pour info, suivant les conseils de Tribal, j'ai ajouté dans hidden_form (en + d'un global $tmp_group)
Je pense que je ne suis pas le premier à avoir essayé de modifier le formuliare d'enregistrement.
Je suis donc preneur de tout conseil
Merci d'avance
Amitiés
Philippe
[ Message édité par : PhilGuen : 19-03-2004 21:02 ]
[ Message édité par : PhilGuen : 19-03-2004 21:03 ]
[ Message édité par : PhilGuen : 19-03-2004 21:04 ]
PhilGuen
Pour infos j'ai essayé de "passer" par $C8 ... et mm blème ... je perds le contenu de $C8 dès l'affichage de l'écran de vérification des données (aff_formulaire.php).
c'ets donc que ton $tmp_group ne traverse pas les fonctions de users.php ! / en le rajoutant dans les params des fonctions (attention /ya la fonction et son appel)
PhilGuen
Bien d'accord, dev ... c'est pourquoir j'ai essayé de passer par $C8
sans plus de résultat.
:-| :paf :|
developpeur
regarde comment NPDS fait .... / que le champ s'appel C4, C8 ou C23456 c'est toujours la même chose :-)