Select avec variables - reporter une variable enregistrée en table

bandenklap
Invité n'ayant pas de compte PHPfrance

29 juil. 2008, 00:46

Bonjour à tous,

j'ai un léger souci avec un select qui refuse de reporter par défaut la valeur que j'ai enregistré en table. Ci dessous mon code :
<SELECT name="activite">
<?php $requete = ("SELECT * FROM activite ORDER BY activite");
$req = mysql_query($requete) or die(mysql_error());

while($res = mysql_fetch_array($req)) {
			
?>
				<OPTION VALUE="<?=$res['activite']; ?>"><?= ($res['activite']); ?></OPTION>
<?php 
}
?>
En gros, j'enregistre lors de la création de mon entrée sur la table la valeur "activité".
il et possible de modifier les valeurs via un formulaire qui reprend les valeurs enregistrées en base. Le problème se pose au niveau de mon select qui est censé reporter la valeur activite enregistrée en base (dans ma table activite), mais qui me remonte par défaut la première valeur de cette table.

Si quelqu'un a la solution, cela me rendrait un énorme service.

Merci par avance et bonne soirée.

Mammouth du PHP | 1353 Messages

29 juil. 2008, 16:09

Si tu connais la valeur de activité pour cette enregistrement il faut que tu testes et que tu joues avec l'attribut "selected='selected'".

Exemple
<SELECT name="activite"> 
<?php 
$activite = "Activité de mon enregistrement";
$requete = ("SELECT * FROM activite ORDER BY activite"); 
$req = mysql_query($requete) or die(mysql_error()); 

while($res = mysql_fetch_array($req)) { 
             
?> 
                <OPTION VALUE="<?=$res['activite']; ?>" <?php if($res['activite']==$activite) echo "selected='selected'"; ?>><?= ($res['activite']); ?></OPTION> 
<?php  
}
Tell me and I forget. Teach me and I remember. Involve me and I learn.