Gestion Table et select

Jérôme -  
ceddec Messages postés 149 Statut Membre -
Bonjour,
J'ai 2 tables :
- Genre_tbl : idgenre(P) , genre
- links : id(P), idgenre, description, adresse

Le but de la page est de faire un carnet d'adresse HTML classé par genre. La table genre_tbl me permet de faire un "catalogue" des genre (5 ou 6 au final), l'autre table a emmagaziner les adresses. Ces tables sont liées par idgenre.

Mon code :
<?php
// Creation du select
$sql2='SELECT * FROM genre_tbl';
$query2 = mysql_query($sql2);
?>
<form name="form" method="post" action="index.php?page=links">
    <select name="choix" onchange=form.submit()>
    <option selected></option>	
	<?php 
	while ($data2 = mysql_fetch_array ($query2))
		{
		?>
		<option value="<?php echo $data2['idgenre']; ?>" > <?php echo $data2['genre'];?></option>
		<?php //}
		}?>
	</select>
</form>


Mon select me permet de choisir le genre et d'affichier automatiquement la liste des adresses correspondante dessous (je n'ai pas rajouter cette partie de code, qui aurait encombrer)
J'aimerai que mon select garde afficher la derniere valeur selectionner : probleme j'affiche dans le select "genre" mais c'est bien "idgenre" qui est traité.
Comment faire pour garder la derniere valeur genre dans mon select
(j'ai pas du etre claire ... mais pas facil a expliqué)
A voir également:

2 réponses

Jérôme
 
J'ai rajouter apres le select la ligne :
<option selected><?php if(isset($_POST[choix])) { echo $_POST[choix]; } ?></option>

Celle ci ne me conserve bien la valeur du select mais non pas en affichant "genre" mais "id genre"... (en gros 1, 2 ou 3 au lieu de info, musique, divers)

J'espere que ca vous aidera a interprété mon prbleme
0
ceddec Messages postés 149 Statut Membre 82
 
Bonjour,


En fait, il ne faut pas mettre de selected en brut comme tu l'as fais.
Si la variable $_POST[choix] n'est pas définie alors tu mets le selected dans le premier option
Sinon tu compares l'idgroup que tu es en train d'ajouter dans ta liste avec la variable $_POST[choix] si c'est pareil, tu ajoutes selected sinon tu n'inseres rien.

Ca donnerai quelque chose comme ca :

<form name="form" method="post" action="index.php?page=links">
    <select name="choix" onchange=form.submit()>
    <?php 
           if(isset($_POST[choix])) 
              $d=''; 
           else 
              $d='selected';
    ?>
    <option <?php echo $d;?>></option>	
	<?php 
	while ($data2 = mysql_fetch_array ($query2))
		{
                     if(isset($_POST[choix]) && $_POST[choix]==$data2['idgenre'])  
                              $d='selected';
                     else $d='';
		?>
		<option value="<?php echo $data2['idgenre']; ?>" <?php echo $d;?>> <?php echo $data2['genre'];?></option>
		<?php //}
		}?>
	</select>
</form>
0