cs_johnmichel
Messages postés30Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention20 février 2006
-
11 janv. 2006 à 14:51
cs_johnmichel
Messages postés30Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention20 février 2006
-
12 janv. 2006 à 14:28
Bonjour, je souhaiterais mettre dans ma base de donnée, les données séléctionné dans une liste déroulante. Voici un extrait du fichier ajoutdoc.php ou je rempli les liste déroulantes, a aucun moment il y a un message d'erreur et il passe bien a la page confirmation, mais rien n'a été ajouté dans la table:
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 12 janv. 2006 à 12:03
C'est bien ce que l'on te dit : c'est ton formulaire qui est foireux. A cause de ces variables qui n'existent pas, et d'un html pourri...remplace tes options (au moins elles) par ce type là :
echo '<option value='.$select['numtype'].'>'.$select['libetype'].'</option>'; // ça c'est pas bon
echo '<option value="'.$select['libetype'].'">'.$select['libetype'].'</option>'; // ça c'est bon.
Il y a 2 problèmes :
- tu utilise$select['numtype'] qui n'existe pas.
- tu ne mets pas de guillemets pour délimiter la valeur de l'attribut 'value' (ce qui fait que si tu as un espace dans la variable que tu y mets, tu vas avoir des surprises...
Un petit rappel : dans tes post, $_POST['truc'] tu vas avoir comme valeur ce que tu mets dans l'attribut 'value', pas ce que tu mets entre tes balises <option> et </option>. SAUF (sous IE en tous cas), si tu ne mets PAS d'attribut value à tes options.
Néanmoins, il vaut mieux en mettre un, et lui donner la valeur que tu veux récupérer, en l'occurence, là, si j'aiu bien compris, c'est $select['libetype'] que tu voulais récupérer.
Enfin, tu as dû mal lire les tutos de phpdebutant.org...ils ne sont pas tous très à la page, mais pas à ce point quand même... ;-)
cs_johnmichel
Messages postés30Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention20 février 2006 11 janv. 2006 à 16:54
jai bien les valeurs dans la liste deroulante mais jai l'impression qu'elle ne sont pas mise en memoire lorsque je clique sur ajouter et que ca passe a la page doc.php
Vous n’avez pas trouvé la réponse que vous recherchez ?
sidf
Messages postés1216Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention18 octobre 20125 12 janv. 2006 à 10:33
est ce que l'insert de la page doc.php s'effectue avec des valeurs à blanc
ou est ce que aucun enregistrement n'est ajouté ??
(en gros l'insert marche ou pas ??)
cs_johnmichel
Messages postés30Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention20 février 2006 12 janv. 2006 à 10:58
ca change rien y a toujour rien qui se met dans la table, en fait jai limpression qu'il prend pas la donnée selectionnee dans la liste deroulante parce ke ca passe bien d'une page a doc.php donc le probleme doit venir de la recuperation de l'objet selectionné
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 12 janv. 2006 à 11:11
Au début de doc.php, mets cette commande :
echo '', $_POST, '
';
et regarde ce qui sort après soumission de ton formulaire.
Mais sidf a raison, quand tu fais ceci :
SELECT libelangue FROM langue
et que tu fais une liste avec des options de cette forme :
echo '<option value="', $select['numlangue'], '">', $select['libelangue'],'</option>';
il y a un problème. Tu vas bien chercher 'libelangue', donc tu l'as dans ta liste, puisque c'est l'innerHTML de ta balise option. Par contre, comme tu ne vas pas chercher 'numlangue', tu ne l'as pas. Et par défaut, tu vas avoir comme valeur de ton attribut value ce que tu as dans l'innerHTML, c'est à dire : libelangue.
Et quand tu fais ton insert, tu as probablement un problème de type, car si tu attendais numlangue, qui doit être un int dans ta base, et que tu te retrouves avec libelangue, qui est probablement un type varchar...l'insertion ne peut pas se faire.D'où l'intérêt, sur le mysql_query() de ton insertion, de sortir mysql_errno() et mysql_error().
cs_johnmichel
Messages postés30Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention20 février 2006 12 janv. 2006 à 11:33
echo '', $_POST, '
';
en mettant cette ligne jai "array" qui s'affiche
par contre dans la table je n'attend pas de numero mais bien varchar c pour ca ke je prend le libé parce ke avan javai fai select * et jattendai un int mais pareil y a rien eu dans la table....
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 12 janv. 2006 à 11:50
Explique-moi pourquoi tu mets dans les 'value' de tes options, des variables qui n'existent pas ? Je ne pige pas la logique de ton code.
Affiche le source html de ta page de formulaire, et regarde ce qu'il y a dans value="" pour chaque option.
Et dans tes if(isset($_POST['sujet'])) $sujet=$_POST['sujet'];
fais plutôt ceci :
cs_johnmichel
Messages postés30Date d'inscriptionsamedi 27 novembre 2004StatutMembreDernière intervention20 février 2006 12 janv. 2006 à 11:55
ben javai lu ca sur le net pour creer les liste deroulantes lol, je ne suis qu'un debutant donc j'ai suivi des truc de sites genre phpdebutant.com
et en modifiant les isset jai maintenant une nouvelle ligne dans la table avec des bla et le bon nom du document, mais toujours pas les valeurs selectionné dans les listes