Dure de trouver un titre !!! Récupération d'un variable lié a un select

Eléphant du PHP | 169 Messages

27 sept. 2007, 16:59

Sachez que grâce à vous je progresse dans mon apprentissage en php (ce qui n'est pas une mince affaire lorsque on est graphiste) et un jour je donnerais peu êtres de conseilles ici :lol:

Dans la continuité de mon problème.... cette fois ci, je ne vois pas comment récupérer "l'id" du "select" qui a la valeur "selected", étant donné que le "value" contient déja une autre variable autre que l'ID.

Pour ceux qui n'auraient pas suivi mes ancien post, voici un pt'it récap.

J'ai deux tables "FORMATION" & "CATEGORIE" - (Formation est lié catégorie)

Code : Tout sélectionner

-- -- Structure de la table `categorie` -- CREATE TABLE `categorie` ( `id_categorie` int(11) NOT NULL auto_increment, `txt_categorie` varchar(250) NOT NULL, KEY `id_categorie` (`id_categorie`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ; -- -------------------------------------------------------- -- -- Structure de la table `formation` -- CREATE TABLE `formation` ( `id_formation` int(11) NOT NULL auto_increment, `id_categorie_formation` int(11) NOT NULL, `nom_formation` varchar(250) NOT NULL, `date_formation` date NOT NULL, `ville_formation` varchar(250) NOT NULL, `pays_formation` varchar(250) NOT NULL, `publique_formation` longtext NOT NULL, `objectif_formation` longtext NOT NULL, `description_formation` longtext NOT NULL, `program_formation` longtext NOT NULL, KEY `id_formation` (`id_formation`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
Une "FORMATION" est toujours lié à une "CATEGORIE" (j'ai donc mis un champs "id_categorie_formation" dans la table "formation" pour récupérer l'id de la table catégorie)

Dans une des pages, je remonte les infos de la BD (formation et categorie) pour pour pouvoir les afficher et donnés la possibilité de les modifier.

Lors de l'envoie des variables a la BD pour la mettre à jour, j'arrive à récupérer toutes les variables sauf l'ID de la table categorie (id_categorie).
je m'explique, j'utilise un menu déroulant "select" pour afficher toutes les catégories existantes et sélectionner (selected) la bonne catégorie qui est lié a la formation.
la "value" de chaque catégorie et le nom de la catégorie. Hhhheuuuuuu :roll: !!! OUI c'est sa ;-)
Ci-dessous la syntaxe pour mieux comprendre.
<select name="themes" id="themes">
<option value="">S&eacute;l&eacute;ctionner</option>
<?php 
								
$select2 = " SELECT formation.*, categorie.* FROM formation, categorie WHERE formation.id_formation = $modifier ";
$selected_retour = mysql_query ($select2) or die (mysql_error());
                                
while ($ligne = mysql_fetch_assoc($selected_retour)) 
{    	
echo '<option value="'.$ligne['txt_categorie'].'"';
                                    
// On vérifie que "id_categorie_formation est égal à "id_formation", si OK on affiche "selected"
if ( $ligne['id_categorie_formation'] == $ligne['id_categorie'] )
{
echo ' selected="selected"';
} 
											
echo ">".$ligne['txt_categorie']."</option>\n";
} 
?>
</select>
Donc, je ne vois pas comment je peux récupérer "id_formation" etant donnée que la valeur du "value" est déja prise par "txt_categorie" ??

merci pour votre aide
--
Kweb

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 sept. 2007, 17:15

Tu as énnoncé toi même la réponse : les attributs "value" de ton select doivent contenir les id de chaque catégorie.

Le texte à destination de l'utilisateur est placé entre les balises <option></option>, le value t'es réservé, tu y mets ce que tu veux, et en l'occurence, ce qui t'arrange, c'est à dire l'id. Plus de problème ensuite pour récupérer cette valeur lorsque le formulaire est soumit ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 169 Messages

27 sept. 2007, 18:30

Comme quoi, je progresse :lol:
merci
--
Kweb