begin process at 2012 02 13 16:09:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Réseau & Internet

 > 

Autre

 > 

données de formulaire "undefined"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

données de formulaire "undefined"

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

Loki6

Membre Club
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

Membre Club
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

Membre Club
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&amp;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&eacute;lectionnez ci-dessous les composants que vous voulez voir para&icirc;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&ecirc;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&ecirc;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 &agrave; gauche</option>
                    <option value='h'>Menu en haut</option>
                    <option value='d'>Menu &agrave; 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&eacute;n&eacute;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&eacute;n&eacute;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

Membre Club
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

Membre Club
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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,154 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales