Bonsoir à tous,
j'ai fait une recherche sur le forum et sur le web, mais je ne trouve pas de réponse à mon petit problème...
J'ai une base de donnée de fiches produits ; quand j'appelle une fiche pour l'éditer (avec un query string du genre : edit.php?id=22 ), tous les champs s'affichent bien dans le formulaire, sauf les listes déroulantes qui ne font pas apparaître l'élément sélectionné.
Pour être plus clair, quand j'appelle la fiche d'un produit dont l'une des caractéristiques est "FRUITÉE" (parmi d'autre possibilités), j'aimerais que ma liste déroulante affiche directement "FRUITÉE". Or, elle n'affiche rien, et je dois sélectionner moi-même à nouveau dans la liste, sans quoi la caractéristique est effacée lors de la mise à jour de la fiche.
Voici le code (simplifié) :
Je pensais que
Si quelqu'un sait comment faire...
Merci d'avance,
Lionel
Modifié par Opentype (07 Mar 2007 - 23:43)
j'ai fait une recherche sur le forum et sur le web, mais je ne trouve pas de réponse à mon petit problème...
J'ai une base de donnée de fiches produits ; quand j'appelle une fiche pour l'éditer (avec un query string du genre : edit.php?id=22 ), tous les champs s'affichent bien dans le formulaire, sauf les listes déroulantes qui ne font pas apparaître l'élément sélectionné.
Pour être plus clair, quand j'appelle la fiche d'un produit dont l'une des caractéristiques est "FRUITÉE" (parmi d'autre possibilités), j'aimerais que ma liste déroulante affiche directement "FRUITÉE". Or, elle n'affiche rien, et je dois sélectionner moi-même à nouveau dans la liste, sans quoi la caractéristique est effacée lors de la mise à jour de la fiche.
Voici le code (simplifié) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-language" content="fr" />
<?php include('conf.php'); ?>
<title>DATABASE</title>
</head>
<body>
<?php
if ((!isset($_GET[id]) || trim($_GET[id]) == '')) { die ('Identifiant manquant !'); }
$connection = mysql_connect($host, $user, $pass) or die ('Impossible de se connecter.');
mysql_select_db($db) or die ('Impossible de se connecter à la base de données.');
$id = $_GET['id'];
$query = "SELECT * FROM products WHERE id = '$id'";
$result = mysql_query($query) or die ('Erreur dans la requête $query.' . mysql_error());
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_object($result);
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table cellspacing="5" cellpadding="5">
<tr>
<td>Family : </td>
<td>
<select name="family">
<?php
$query1 = "SELECT DISTINCT family FROM families ORDER BY family";
$result1 = mysql_query($query1) or die ('Erreur dans la requête $query.' . mysql_error());
while ($row1 = mysql_fetch_row($result1)) { echo '<option value="'.$row1[0].'">'.$row1[0].'</option>'; }
?>
</select>
</td>
<td> (<?php echo($row->family); ?>)</td>
</tr>
<tr><td><input name="id" type="hidden" value="<?php echo $id; ?>" /></td></tr>
<tr><td><input name="submit" type="submit" value="Mettre à jour" /></td></tr>
</table>
</form>
<?php
}
else {
/* blablabla... */
}
?>
</body>
</html>
Je pensais que
<option value="'.$row1[0].'">'.$row1[0].'</option>
serait suffisant, mais apparemment non...Si quelqu'un sait comment faire...
Merci d'avance,
Lionel
Modifié par Opentype (07 Mar 2007 - 23:43)