Gestion Table et select

Fermé
Jérôme - 5 avril 2007 à 12:20
ceddec Messages postés 148 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 10 mars 2012 - 5 avril 2007 à 13:15
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é)

2 réponses

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 148 Date d'inscription dimanche 31 juillet 2005 Statut Membre Dernière intervention 10 mars 2012 82
5 avril 2007 à 13:15
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