Accueil > Forum > > > > données de formulaire "undefined"
données de formulaire "undefined"
dimanche 12 avril 2009 à 01:04:56 |
données de formulaire "undefined"

Loki6
|
Salut à tous, mon problème d'aujourd'hui n'est pas à proprement parlé du php, mais c'est lié et j'ai pas trouvé de htmlfrance.com ^^ alors voilà, j'ai fait un formulaire html, avec envoi type POST. Lorsque je récupère mes données via un $_POST['toto'], aucun problème pour certaines valeurs. Mais pour d'autres, ça me retourne un undefined. Pourant les ids existent réellement (je m'en sers même dans du javascript juste avant la validation du formulaire.) Je me suis aperçu que ça concernait des balises select que j'ai encapsulés dans des div. Le problème pourrait-il venir de là ? Si oui, ai-je d'autre solutions que de virer les div, ou, si je veux garder ma mise en page, de rediriger mes valeurs vers des input hidden ? Merci pour vos réponses. ++  Loki 
|
|
dimanche 12 avril 2009 à 01:13:23 |
Re : données de formulaire "undefined"

TychoBrahe
|
Salut,
Est-il possible de voir le html stp ? Juste comme ça, dans un html syntaxiquement correct ça ne pose aucun problème que de mettre des select dans des div.
|
|
dimanche 12 avril 2009 à 10:16:01 |
Re : données de formulaire "undefined"

kohntark
|
Salut,
Comme le dit TychoBrahe un peu de code serait le bienvenue.
Pourant les ids existent réellement => j'imagine que c'est ce que tu voulais dire, mais c'est les name que tu récupères, pas les id
Cordialement,
Kohntark -
|
|
dimanche 12 avril 2009 à 23:04:26 |
Re : données de formulaire "undefined"

Loki6
|
Salut, merci pour vos réponses. Je m'interroge quand même à propos des 'name' et 'id'. J'étais persuadé que c'était les 'id' qui importaient. D'ailleurs j'utilise très peu les name et le w3c validator m'a jeté sur le test xhtml strict à cause d'un name. j'ai dû passer en transitional. Dans mon code js, je fais des " document.getElementById('...');" qui passent très bien. Et comme vous allez pouvoir le constater, les $_POST['...'] fonctionnent bien avec des 'id', du moins partiellement. Voici donc mon code (allégé uniquement au niveau contenu texte, la partie code est intacte : #####################################################################################<form method='post' action='index.php?p=c&step=2' name='frm_crea1'> <p> <label for='projectname'>Pour commencer, choisissons un nom pour ce projet : </label> <input type='text' value='nom de projet' name='projectname' id='projectname' size='50' maxlength='50' class='saisie'/> </p> <p>...</p> <p>...</p> <fieldset> <legend>Composants de page web</legend> <p>Sélectionnez ci-dessous les composants que vous voulez voir paraître sur votre site :</p> <div class='btn_frm' id='frm_tete_btn' onmousedown='traite_btn_frm("tete")' onmouseover='affiche_btn_com("tete")' onmouseout='cache_btn_com("tete")'> En-tête</div> <input type='hidden' id='frm_tete' name='frm_tete' value='0'/> <div class='btn_frm' id='frm_menu_btn' onmousedown='traite_btn_frm("menu")' onmouseover='affiche_btn_com("menu")' onmouseout='cache_btn_com("menu")'> Menu</div> <input type='hidden' id='frm_menu' name='frm_menu' value='0'/> <div class='btn_frm_sel' id='frm_corps_btn' onmousedown='traite_btn_frm("corps")' onmouseover='affiche_btn_com("corps")' onmouseout='cache_btn_com("corps")'> Corps</div> <input type='hidden' id='frm_corps' name='frm_corps' value='1'/> <div class='btn_frm' id='frm_pied_btn' onmousedown='traite_btn_frm("pied")' onmouseover='affiche_btn_com("pied")' onmouseout='cache_btn_com("pied")'> Pied de page</div> <input type='hidden' id='frm_pied' name='frm_pied' value='0'/> <div id='comm_def' class='commentaire'>test</div> <div id='frm_opts'> <div class='opts' id='frm_tete_opt'><b>Options de l'En-tête</b><br/> <select id='frm_tete_opt1' onchange='modif_visu("frm_tete_opt1")'> <option value='1' selected='selected'>1 seule partie</option> <option value='2a'>2 parties, petite d'abord</option> <option value='2b'>2 parties, grande d'abord</option> <option value='3'>3 parties</option> </select> </div> <div class='opts' id='frm_menu_opt'><b>Options du Menu</b><br/> <select id='frm_menu_opt1' onchange='modif_visu("frm_menu_opt1")'> <option value='g' selected='selected'>Menu à gauche</option> <option value='h'>Menu en haut</option> <option value='d'>Menu à droite</option> </select> </div> <div class='opts' id='frm_corps_opt'><b>Options du Corps</b><br/> <select id='frm_corps_opt1' onchange='modif_visu("frm_corps_opt1")'> <option value='1' selected='selected'>Largeur finie</option> <option value='0'>Largeur infinie</option> </select> </div> <div class='opts' id='frm_pied_opt'><b>Options du Pied de page</b><br/> <select id='frm_pied_opt1' onchange='modif_visu("frm_pied_opt1")'> <option value='1' selected='selected'>1 seule partie</option> <option value='2a'>2 parties, petite d'abord</option> <option value='2b'>2 parties, grande d'abord</option> <option value='3'>3 parties</option> </select> </div> <div class='opts' id='frm_gen_opt'><b>Options générales</b><br/> <div id='frm_gen_opt_larg'>Largeur totale <input type='text' id='frm_gen_opt_largi' value='800' size='5'/> px</div> </div> </div> <div id='boitecrea'> <div id='frm_tete_visu' style='border:solid 1px grey;width:398px;height:30px;text-align:center;display:none; font-weight:bold;'>Lorem ipsum dolor sit amet </div> <div id='frm_menu_visu' style='border:solid 1px grey;width:50px;height:298px;text-align:center;display:none; font-weight:bold;float:left;'>Lorem ipsum dolor sit amet </div> <div id='frm_corps_visu' style='border:solid 1px grey;width:394px;height:294px;text-align:justify;padding:2px;overflow:auto;'> <h3>Lorem ipsum dolor sit amet</h3> <p>...</p> </div> <div id='frm_pied_visu' style='border:solid 1px grey;width:398px;height:30px;text-align:center;display:none; font-weight:bold;'>Lorem ipsum dolor sit amet </div> </div> <div class='centrer' style='margin-left:30%;font-style:italic;'> Forme générale de votre future page.</div> <div class='centrer'> <div class='btn1' onclick='window.document.forms["frm_crea1"].submit()'>Continuer</div> </div> </fieldset> </form>#####################################################################################Le code à la validation est le suivant (en php cette fois) : ##################################################################################### $bd = new BD(NOM,PASS,BASE,SERVEUR); $bd->execRequete("truncate table temp_form"); if (isSet($_POST['projectname'])) $bd->execRequete("insert into temp_form values('projectname','{$_POST['projectname']}')"); if (isSet($_POST['frm_tete'])) { $bd->execRequete("insert into temp_form values('frm_tete','{$_POST['frm_tete']}')"); $bd->execRequete("insert into temp_form values('frm_tete_opt1','{$_POST['frm_tete_opt1']}')"); } if (isSet($_POST['frm_menu'])) { $bd->execRequete("insert into temp_form values('frm_menu','{$_POST['frm_menu']}')"); $bd->execRequete("insert into temp_form values('frm_menu_opt1','{$_POST['frm_menu_opt1']}')"); } if (isSet($_POST['frm_corps'])) { $bd->execRequete("insert into temp_form values('frm_corps','{$_POST['frm_corps']}')"); $bd->execRequete("insert into temp_form values('frm_corps_opt1','{$_POST['frm_corps_opt1']}')"); if ($_POST['frm_corps_opt1'] == '1') $bd->execRequete("insert into temp_form values('frm_gen_opt1','{$_POST['frm_gen_opt1']}')"); } if (isSet($_POST['frm_pied'])) { $bd->execRequete("insert into temp_form values('frm_pied','{$_POST['frm_pied']}')"); $bd->execRequete("insert into temp_form values('frm_pied_opt1','{$_POST['frm_pied_opt1']}')"); }
// test $resultat = $bd->execRequete("select * from temp_form"); while($ligne=$bd->objetSuivant($resultat)) { echo "<p>$ligne->nom = $ligne->valeur</p>"; } #####################################################################################Le résultat est visuellement : Notice: Undefined index: frm_tete_opt1 in ... Notice: Undefined index: frm_menu_opt1 in ... Notice: Undefined index: frm_corps_opt1 in ... Notice: Undefined index: frm_corps_opt1 in ... Notice: Undefined index: frm_pied_opt1 in ... projectname = nom de projet frm_tete = 1 frm_tete_opt1 = frm_menu = 1 frm_menu_opt1 = frm_corps = 1 frm_corps_opt1 = frm_pied = 1 frm_pied_opt1 = Voili voilou. Merci à vous si vous trouvez ce qui cloche dans ce bout de code.  Loki 
|
|
lundi 13 avril 2009 à 10:28:15 |
Re : données de formulaire "undefined"

kohntark
|
Réponse acceptée !
Re,
Je m'interroge quand même à propos des 'name' et 'id'. J'étais persuadé que c'était les 'id' qui importaient. => c'est toujours le name que l'on récupère en post, jamais le id.
D'ailleurs j'utilise très peu les name et le w3c validator m'a jeté sur le test xhtml strict à cause d'un name. j'ai dû passer en transitional. => c'est sans doute que tu mets un name sur une balise qui n'en autorise pas, par exemple <a name="machin" (sauf erreur de ma part bien sur)
Dans mon code js, je fais des "document.getElementById('...');" qui passent très bien. => oui, et heureusement. Mais là c'est du javascript, pas du PHP.
Et comme vous allez pouvoir le constater, les $_POST['...'] fonctionnent bien avec des 'id', du moins partiellement. => je n'ai pas regardé en détail ton script, mais non, tu ne peux pas les récupérer juste avec l'id.
Par exemple : <select id='frm_tete_opt1' onchange='modif_visu("frm_tete_opt1")'> => tu ne le récupères pas avec $_POST['frm_tete_opt1'];
par contre : <select id='frm_tete_opt1' name='frm_tete_opt1' onchange='modif_visu("frm_tete_opt1")'> le récupère correctement.
Cordialement,
Kohntark -
|
|
lundi 13 avril 2009 à 17:34:16 |
Re : données de formulaire "undefined"

Loki6
|
salut, j'ai suivi ton conseil et en effet, ce sont bien les name qui servent pour le php. j'avais toujours cru le contraire.  merci beaucoup !!   Loki 
|
|
Cette discussion est classée dans : problème, données, formulaire, post, undefined
Répondre à ce message
Sujets en rapport avec ce message
POST et formulaire [ par haklia ]
Bonjour à tous,bon je vous expose mon petit soucis :j'ai créé un formulaire. Apres un clic sur le bouton Envoyer, les données sont transmises par POST
problème avec $_POST et Select [ par anspauldou ]
Salut J'ai un problème avec mon $_POST et le select de mon formulaire. lorsque que je soumets mon formulaire, $_POST ['select '] ne me renvoie que le
Problème d'upload de (gros?) fichiers [ par hvb ]
Bon attention, ma demande est assez compliquée... je m'explique rapidement :Je fais une base de connaissance pour ma societé, et dans le formulaire d'
Problème "POST" "GET" [ par xcalibre ]
Bonjour,J'ai un problème probablement très simple pour certain d'entre vous, mais qui me complique bien des choses à moi.Voilà ma question, j'ai un bo
affichage données BD [ par lamine11 ]
salut à tous , voici mon problème , j'enrtegistre des données d'un formulaire dans und bd mysql (phpmyadmin) dans une page ,dans une autre page j'aff
formulaires [ par mathieu_74 ]
bonjour à tous et toutes! j'ai un projet a réaliser et j'ai un pti souci technique... ça consiste à recuperer les données d'un formulaire et les trait
Entrer données avec accents [ par givit ]
Bonjour,J'ai un petit problème avec un formulaire d'inscription. Lorsqu'on met des mots avec accent, ceux-ci se retrouvent inscrit dans la base de don
formulaire [ par dekec ]
bonjourj'ai un probleme concernant mon formulaire. je m'explique:j'ai ecrit mon code php pour valider mon formulaire et voila la réponse. merci pour v
Problème encodage accent grave [ par pwet8484 ]
Bonjour,J'ai un soucis avec le stockage de mes accents en base de données. Plutôt classique mais le truc bizarre c'est que ça ne me le fait pas avec t
Le traitement par $_POST ne renvoie Rien... [ par 25juillet2008 ]
Bonjour la communauté, J'ai un problème bizarre avec les méthodes de formulaires... J'ai un formulaire et un fichier d'action. Avec le formulaire, je
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|