Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/03/2007, 14h37   #1
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Par défaut Options Selected sur SELECT

Bonjour,
j'ai un petit soucis de gestion dans une gestion administrative d'un site Internet.

J'ai une liste de clients avec différentes données (NOM, PRENOM, etc...)

Ce que j'aimerai c'est que quand je modifie un client, j'ai son nom, prénom etc... puis la liste des affiliations. Donc j'ai une liste déroulante qui m'affiche toute les affiliations mais j'aimerais faire pour que il pointe d'origine sur l'affiliation qu'il a enregistré sur la BD.

Exemple j'ai 4 affiliations: Suisse / France / Italie / Belgique

J'ai un client: Frutix --> Suisse

Quand je clique sur Modifier, j'aimerais avoir ma liste déroulante avec toutes mes affiliations mais la première (OPTION SELECTED) est Suisse!

Voici la partie de mon formulaire sans l'option selected.

Code :
1
2
3
4
5
6
7
 
<select name="for_affiliates">
<?php do { ?>
<option value="<?php echo $ligne_affiliates->pk_affiliates; ?>"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
</option>
<?php } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
</select>
Merci de m'aider... A++
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 14h42   #2
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
Tu en as trop dit ou pas assez...

Personnellement je n'ai pas cerné ton problème.
Tu possèdes plusieurs listes déroulantes dont les données dépendent en cascade ?
Tu voudrais rafraichir les données une fois une liste sélectionnée ?
Tu voudrais garder les données quand tu postes le formulaire ?
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 14h45   #3
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Je comprends pas trop le code, un peu d'explication sur tes variables serait un plus.
De ce que j'ai compris, tu affiches dans ton premier "option" l'affiliation choisie ensuite tu déroules toutes les autres options, c'est bien ca?
Si c'est ca alors:
Code :
1
2
<option value="<?php echo $ligne_affiliates->pk_affiliates; ?> selected"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
</option>
devrait suffire.

Sinon la méthodologie que j'tutilise est la suivante:
Code :
1
2
3
4
5
6
7
8
9
10
 
$affiliation_de_ma_personne=$ladonneaffiliationdecettepersonne.
foreach($liste_des_affiliations as $une affiliation){
  if($une_affiliation==$affiliation_de_ma_personne){
    echo '<option value="$une_affiliation" selected>Nom option</option>';
}else
{
echo '<option value="$une_affiliation" >Nom option</option>';
}
}
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 14h48   #4
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Ah, un de mes nombreux problèmes... Essayer de me faire comprendre!



Dans la Base de donnée, Jacques Chirac a comme affiliates (FRANCE)!

Donc ce que j'aimerais c'est qu'il affiche France et qu'ensuite quand on clique sur la liste déroulante, ça affiche cela:



Est-ce que je suis plus clari?
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 14h59   #5
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
J'apprécie l'effort
Mais je parlais surtout du role de tes variables et pas de la problématique que je pensais avoir saisi (tu peux relire mon post).

Peut etre que par exemple si tu me disais ce que fais cette ligne:
Code :
<option value="<?php echo $ligne_affiliates->pk_affiliates; ?>"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
Je pourrai t'aider plus.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 15h05   #6
Membre habitué
 
Inscription : mars 2007
Messages : 104
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : mars 2007
Messages : 104
Points : 104
Points : 104
Je pense avoir compris ton problème.

Tu devrais faire une requête juste avant ton <SELECT name=""> où tu vas chercher dans ta base le pays d'affiliation.

Et en fonction de ca, tu places ton selected dans le <option> correspondant.

Ca va te faire beaucoup de if{}else{} mais c'est une solution simple.
Cemos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 15h05   #7
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Citation:
Envoyé par Raideman
J'apprécie l'effort
Mais je parlais surtout du role de tes variables et pas de la problématique que je pensais avoir saisi (tu peux relire mon post).

Peut etre que par exemple si tu me disais ce que fais cette ligne:
Code :
<option value="<?php echo $ligne_affiliates->pk_affiliates; ?>"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
Je pourrai t'aider plus.
Excuse-moi je répondais au premier message...
Je suis en train d'essayer ta soluce avec le foreach(que j'essaye de comprendr)

Mes variables:
$ligne_affiliates->pk_affiliates : ID d'un champ Affiliates
$ligne_affiliates->description_affiliates : Nom d'un champ Affilaiites
$ligne_affiliates->name_regions: Nom d'un champ de la table Régions (Associé à Affiliates)
$ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates): Utile pour la fin de ma boucle DO

j'espère avoir été plus précis
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 15h11   #8
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Ok j'ai compris.
Ce qu'il faudrait faire en fait, c'est deja recupere le pk_affiliates de la personne qeu tu modifies.

Imaginons que tu aies l'id de l'affiliate de la personne dans la variable $id_aff

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<select name="for_affiliates">
<?php
 do { 
if($id_aff==$ligne_affiliates->pk_affiliates){
echo '<option value="'.$ligne_affiliates->pk_affiliates.'" selected>'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
 
}
else
{
echo '<option value="'.$ligne_affiliates->pk_affiliates.'">'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
}
 } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
</select>
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 15h30   #9
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Citation:
Envoyé par Raideman
Ok j'ai compris.
Ce qu'il faudrait faire en fait, c'est deja recupere le pk_affiliates de la personne qeu tu modifies.

Imaginons que tu aies l'id de l'affiliate de la personne dans la variable $id_aff

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<select name="for_affiliates">
<?php
 do { 
if($id_aff==$ligne_affiliates->pk_affiliates){
echo '<option value="'.$ligne_affiliates->pk_affiliates.'" selected>'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
 
}
else
{
echo '<option value="'.$ligne_affiliates->pk_affiliates.'">'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
}
 } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
</select>
Alors cette solution ne fonctionne pas...
Pourtant j'ai modifié $id_aff en --> fk_affiliates_customers ce qui est d'après ton explication le champ correspondant...
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 15h35   #10
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Citation:
Envoyé par Cemos
Je pense avoir compris ton problème.

Tu devrais faire une requête juste avant ton <SELECT name=""> où tu vas chercher dans ta base le pays d'affiliation.

Et en fonction de ca, tu places ton selected dans le <option> correspondant.

Ca va te faire beaucoup de if{}else{} mais c'est une solution simple.
Alors la variable qui contient l'ID d'affliates et déjà là: fk_affiliates_customers... Cependant, j'ai essayé aussi avec des IF, mais pas de réussite...
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2007, 16h34   #11
Membre du Club
 
Inscription : novembre 2003
Messages : 174
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Suisse

Informations forums :
Inscription : novembre 2003
Messages : 174
Points : 45
Points : 45
Envoyer un message via MSN à frutix
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<tr>
	<td>Affiliates:</td>
	<td>
	      <select name="for_affiliates">
		<?php
		do { 			if($ligne_customers->fk_affiliates_customers==$ligne_affiliates->pk_affiliates){
		?>
		<option value=<?php echo $ligne_affiliates->pk_affiliates; ?> selected><?php echo $ligne_affiliates->description_affiliates;?> / <?php echo $ligne_affiliates->name_regions;?></option>
<?php
	}
	else
	{
?>
<option value=<?php echo $ligne_affiliates->pk_affiliates;?> ><?php echo $ligne_affiliates->description_affiliates;?> / <?php echo $ligne_affiliates->name_regions;?></option>
					<?php
					}
					 } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
</select>
</td>
</tr>
Voilà la solution. merci de vos aides respectives
frutix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h59.


 
 
 
 
Partenaires

Hébergement Web