Encore moi et mes pitis pbs de SQL...
Sur un très grand formulaire de l'espace admin, j'ai 3 listes déroulantes alimentées par BDD qui s'affichent parfaitement.
Mais je n'arrive pas à récupérer la valeur sélectionnée dans ces listes pour les renvoyer dans ma base de données
Les tables utilisées pour une des listes déroulantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 -- -------------------------------------------------------- -- -- Structure de la table documentaire (8) -- CREATE TABLE IF NOT EXISTS documentaire ( idDoc tinyint (3) NOT NULL AUTO_INCREMENT, nomDoc_fr varchar(100) NOT NULL, nomDoc_en varchar(100) NOT NULL, ... idNaturDoc varchar(3) , ... CONSTRAINT pk_documentaire PRIMARY KEY (idDoc), CONSTRAINT fk_DocNatur FOREIGN KEY (idNaturDoc) REFERENCES naturDoc(idNaturDoc) ON DELETE CASCADE, ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; -- -------------------------------------------------------- -- -- Structure de la table naturDoc (3) -- CREATE TABLE IF NOT EXISTS naturDoc ( idNaturDoc varchar(3) NOT NULL, nomNaturDoc_fr varchar(20) NOT NULL, nomNaturDoc_en varchar(20) NOT NULL, CONSTRAINT pk_naturDoc PRIMARY KEY (idNaturDoc) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Contenu de la table naturDoc -- INSERT INTO naturDoc (idNaturDoc, nomNaturDoc_fr, nomNaturDoc_en) VALUES ('doc', 'documentaire', 'documentary'), ('daf', 'danse-fiction', 'dance-fiction'), ('dan', 'danse', 'dance'), ('mus', 'musique', 'music'), ('crv', 'création vidéo', 'crative video'), ('web', 'web documentaire', 'web documentary'), ('fic', 'fiction', 'fiction');
la partie du formulaire contenant la liste déroulante :
Le code qui ne fonctionne pas (pas de message d'erreur mais pas d'insertion dans la table documentaire) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <p class="form"> <label for="nature">* Nature <span class="info">Choisissez la nature du film.</span></label> <select id="nature" name="natureDoc"> <option value="" selected="selected"></option> <?php $rq=mysql_query("SELECT * FROM naturDoc"); while ( $val = mysql_fetch_array($rq) ):?> echo "<option value="<?=$val['idNaturDoc'];?>""/><?=$val['nomNaturDoc_fr'];?></option><br/>" ; <?php endwhile; ?> </select> </p>
Je précise que le souci ne peut pas venir d'une mauvaise connexion sql car un peu plus haut dans le formulaire, je récupère des champs de type text et ils atterrissent bien dans ma BDD.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // ********************** récup liste déroulante Nature *************************** $idDocumentaire=mysql_insert_id(); // La valeur de l'index attribué au document. if(isset($_POST['NatureDoc'])) { // Envoie du formulaire... $idNaturDoc=$_POST["idNaturDoc"]; $sqlNatur=mysql_query ("INSERT INTO documentaire (idNaturDoc) VALUES ('$idNaturDoc')"); }
Merci de m'aider
Partager