Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 01/01/2011, 15h26   #1
Membre du Club
 
Inscription : janvier 2010
Messages : 204
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : janvier 2010
Messages : 204
Points : 52
Points : 52
Par défaut Formulaire- Affichage valeur sélectionnée

Bonjour,

J'ai le formulaire et code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
 
<form>
 
<fieldset style="width: 350px">
 
<legend><strong>Editeur</strong></legend>
 
<label>Choisir :</label>
 
<select name='id_editeur' id='auteur' onchange="this.form.submit();">
 
<option value='-1'>Aucun</option>
 
<?php
 
$db = mysql_connect("localhost","root", "")  or die ('erreur de connexion');
mysql_select_db('***',$db);
mysql_set_charset( 'utf8' );
 
$res = mysql_query("SELECT DISTINCT ED.NOM_EDITEUR AS editeur,ED.ID_EDITEUR AS id_editeur
 
FROM LIVRE L
 
INNER JOIN EDITEUR ED		
ON ED.ID_EDITEUR = L.ID_EDITEUR
ORDER BY  ED.NOM_EDITEUR");
 
 
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["id_editeur"].">".$row["editeur"]."</option>";
 
				     }?>
 
</select>			
 
</fieldset>
</form>
 
 
<?php		
 
if( $row['id_editeur'] != null) { 
 
  $select_livre  = " SELECT L.TITRE AS titre (...) 
  WHERE ED.ID_EDITEUR=".$row['id_editeur'];
?>
Après après avoir soumis le formulaire, je souhaiterais conserver l'affichage du nom de l'éditeur sélectionné ($row["editeur"]). Actuellement, l'affichage revient à "aucun". Pouvez-vous m'aider à obtenir le résultat souhaité ? Merci.
almoha est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 16h06   #2
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Je ne sais pas avec quelle méthode tu soumets ton formulaire (POST ou GET), mais je m'y prendrais de la façon suivante pour affecter la bonne valeur à ta zone SELECT... ceci à supposer que le submit te ramène à la même page et pas sur une autre page HTML:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
<form name="monFormulaire" action="pageActuelle.php" method="POST"> 
 
<fieldset style="width: 350px">
 
<legend><strong>Editeur</strong></legend>
 
<label>Choisir :</label>
 
<select name='id_editeur' id='auteur' onchange="this.monFormulaire.submit();">
 
<option value='-1'>Aucun</option>
 
<?php
 
$db = mysql_connect("localhost","root", "")  or die ('erreur de connexion');
mysql_select_db('***',$db);
mysql_set_charset( 'utf8' );
 
$res = mysql_query("SELECT DISTINCT ED.NOM_EDITEUR AS editeur,ED.ID_EDITEUR AS id_editeur
 
FROM LIVRE L
 
INNER JOIN EDITEUR ED		
ON ED.ID_EDITEUR = L.ID_EDITEUR
ORDER BY  ED.NOM_EDITEUR");
 
 
while($row = mysql_fetch_assoc($res)){
if (isset($_POST['id_editeur']))
{
   if($_POST['id_editeur'] == $row['id_editeur'])
   {
         echo "<option value='".$row["id_editeur"]."' selected>".$row["editeur"]."</option>";
   }
   else
   {
       echo "<option value='".$row["id_editeur"]."'>".$row["editeur"]."</option>";
   }
}
else
{
    echo "<option value='".$row["id_editeur"]."'>".$row["editeur"]."</option>";
}
 
				     }?>
 
</select>			
 
</fieldset>
</form>
 
 
<?php		
 
if( $row['id_editeur'] != null) { 
 
  $select_livre  = " SELECT L.TITRE AS titre (...) 
  WHERE ED.ID_EDITEUR=".$row['id_editeur'];
?>
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 17h48   #3
Membre du Club
 
Inscription : janvier 2010
Messages : 204
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : janvier 2010
Messages : 204
Points : 52
Points : 52
Merci pour ton code. Cela fonctionne mais bizarrement mon code javascript onchange="this.form.submit();" ne se déclenche plus. Je suis obligé de soumettre mon formulaire en créant un bouton submit et en cliquant dessus. Une idée sur ce dysfonctionnement ? Merci encore.
almoha est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 18h02   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

teste ceci :

Code js :
1
2
 
document.forms['leNomDeTonFormulaire'].submit();
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 18h22   #5
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Madfrix a effectivement raison. Et le problème vient de la ligne suivante:

Code :
1
2
 
<form name="monFormulaire" action="pageActuelle.php" method="POST">
Avec cette ligne, j'ai donné un nom au formulaire en question (monFormulaire), tu peux évidemment l'appeler comme tu veux, mais maintenant pour y accéder il faut tenir compte de ce nouveau paramètre, ce que j'ai mal fait dans mon code précédent. Dans le onchange, il faudrait plutôt mettre ceci:

Code :
1
2
 
<select name='id_editeur' id='auteur' onchange="document.monFormulaire.submit();">
Ou bien, tu peux utiliser la méthode de Madfrix qui revient essentiellement au même:

Code :
1
2
 
<select name='id_editeur' id='auteur' onchange="document.forms['monFormulaire'].submit();">
Donc voilà, bon codage .

Osu
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 18h32   #6
Membre du Club
 
Inscription : janvier 2010
Messages : 204
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : janvier 2010
Messages : 204
Points : 52
Points : 52
Merci beaucoup à tous les 2 et particulièrement à osuwariboy pour ses explications aussi claires qu'instructives.
almoha est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 19h02   #7
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
Comme je dis toujours, la réponse n'est jamais aussi importante que la compréhension qui en découle. Donc, si j'ai pu t'aider à améliorer ta compréhension de PHP et de Javascript et bien c'est tant mieux .

Ravi d'avoir pu t'être utile .

Osu
osuwariboy 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 16h22.


 
 
 
 
Partenaires

Hébergement Web