单选按钮值不在$ _POST中

时间:2010-06-21 17:16:17

标签: php

我有一个包含多个控件的表单,tey都通过$_POST传递并使用PHP进行处理。

但是,$_POST没有传递2个字段。我使用print_r ($_POST);并且此字段未显示。输入为nouvellePropriete

<label id="propriete">Vous nous informez de ce changement d'adresse parce que:</label> 
<input type="radio" id="nouvellePropriete_1" name="nouvellePropriete" value="o" /> 
<span style="font-size:0.87em;"> vous avez acquis une nouvelle propri&eacute;t&eacute; (terrain, b&acirc;timent) ?</span>
<input type="radio" id="nouvellePropriete_2" name="nouvellePropriete" value="n" /> 
<span style="font-size:0.87em;"> vous souhaitez simplement changer votre adresse de correspondance ?</span>

以下是我的表单的完整代码:

<h2> Changement d'adresse</h2>
<h3> Employ&eacute;s de la commission scolaire ou propri&eacute;taires </h3>
<center><img src="images/logo.jpg"/></center><br/>
<div id="contact">
    <div id="message"></div>
    <form name="AdrForm" id="AdrForm" method="post" action="traitement.php">
        <h4> Veuillez remplir ce formulaire pour nous faire part de votre changement d'adresse </h4><br/>
        <fieldset class="login">
            <legend>Informations personnelles</legend>
            <div>
                <label for="pnom">Pr&eacute;nom</label>
                <input id="pnom" name="pnom" tabindex="1"/>
                <script type="text/javascript">
                    var f1 = new LiveValidation('pnom');
                    f1.add(Validate.Presence);
                </script> 
            </div>  
            <div>
                <label for="nom">Nom</label>
                <input id="nom" name="nom" tabindex="2"/>
                <script type="text/javascript">
                    var f2 = new LiveValidation('nom');
                    f2.add(Validate.Presence);
                </script> 
            </div>
            <div>
                <label for="telephoneJour">T&eacute;l&eacute;phone (pour vous joindre le jour)</label>
                <input id="telephoneJour" name="telephoneJour" tabindex="3"/>
                <script type="text/javascript">
                    var f3 = new LiveValidation('telephoneJour');
                    f3.add(Validate.Presence);
                    f3.add( Validate.Length, { minimum: 10, maximum: 12 } );
                </script> 
            </div>
            <div>   
                <label for="posteTel">Poste (optionel)</label>
                <input style="width:50px;" id="posteTel" name="posteTel" tabindex="4"/>
            </div>
            <div>
                <label id="Lblcourriel" for="courriel">Courriel (optionel)</label>
                <input id="courriel" name="courriel" tabindex="5"/>
                <script type="text/javascript">
                    var f13 = new LiveValidation('courriel');
                    f13.add(Validate.Email);
                </script>
            </div>
        </fieldset>
        <fieldset class="contact">
            <legend>Adresse actuelle</legend>
            <div>
                <label for="adresseAct1">N&deg; civique et rue</label>
                <input id="adresseAct1" name="adresseAct1" tabindex="6"/>
                <script type="text/javascript">
                    var f4 = new LiveValidation('adresseAct1');
                    f4.add(Validate.Presence);
                </script> 
            </div>
            <div>
                <label for="villeAct">Ville</label>
                <input id="villeAct" name="villeAct" tabindex="7"/>
                <script type="text/javascript">
                    var f5 = new LiveValidation('villeAct');
                    f5.add(Validate.Presence);
                </script> 
            </div>
            <div>
                <label for="codePostalAct">Code postal</label>
                <input id="codePostalAct" name="codePostalAct" tabindex="8"/>
                <script type="text/javascript">
                    var f6 = new LiveValidation('codePostalAct');
                    f6.add(Validate.Presence);
                    f6.add( Validate.Format, { pattern: /^[a-zA-Z]{1}[0-9]{1}[a-zA-Z]{1}(\-| |){1}[0-9]{1}[a-zA-Z]{1}[0-9]{1}$/i } );
                </script>
            </div>
            <div>
                <label for="telephoneAct">T&eacute;l&eacute;phone</label>
                <input id="telephoneAct" name="telephoneAct" tabindex="9"/>
                <script type="text/javascript">
                    var f7 = new LiveValidation('telephoneAct');
                    f7.add(Validate.Presence);
                    f7.add( Validate.Length, { minimum: 10, maximum: 12 } );
                </script> 
            </div>
        </fieldset>
        <fieldset class="contact">  
            <legend>Nouvelle adresse</legend>   
            <div>
                <label for="adresseNew1">N&deg; civique et rue</label>
                <input id="adresseNew1" name="adresseNew1" tabindex="10"/>
                <script type="text/javascript">
                    var f8 = new LiveValidation('adresseNew1');
                    f8.add(Validate.Presence);
                </script>
            </div>
            <div>
                <label for="villeNew">Ville</label>
                <input id="villeNew" name="villeNew" tabindex="11"/>
                <script type="text/javascript">
                    var f9 = new LiveValidation('villeNew');
                    f9.add(Validate.Presence);
                </script>
            </div>
            <div>
                <label for="codePostalNew">Code postal</label>
                <input id="codePostalNew" name="codePostalNew" tabindex="12"/>
                <script type="text/javascript">
                    var f10 = new LiveValidation('codePostalNew');
                    f10.add(Validate.Presence);
                    f10.add( Validate.Format, { pattern: /^[a-zA-Z]{1}[0-9]{1}[a-zA-Z]{1}(\-| |){1}[0-9]{1}[a-zA-Z]{1}[0-9]{1}$/i } );
                </script>
            </div>
            <div>
                <label for="telephoneNew">T&eacute;l&eacute;phone</label>
                <input id="telephoneNew" name="telephoneNew" tabindex="13"/>
                <script type="text/javascript">
                    var f11 = new LiveValidation('telephoneNew');
                    f11.add(Validate.Presence);
                    f11.add( Validate.Length, { minimum: 10, maximum: 12 } );
                </script> 
            </div>      
            <div>
                <label style="width:25em" for="dateNew">Date d'entr&eacute;e en vigueur de la nouvelle adresse</label>
                <input style="width:100px;" id="dateNew" name="dateNew" type="textbox" tabindex="14"/>                  
            </div>
        </fieldset>
        <fieldset>  
            <legend>Statut</legend>
            <div>
                <label style="width:35em;text-align:left" for="employeCSS">Vous &ecirc;tes employ&eacute; de la Commission scolaire des Sommets?</label>
                <input type="checkbox" id="employeCSS" name="employeCSS" onclick="CSSChecked()"/><br/>  
            </div>
            <div id="css">
                <div>
                    <label id="LblMatricule" style="visibility:hidden;" >Num&eacute;ro de matricule</label>
                    <input id="matricule" style="visibility:hidden;" name="matricule"/>
                </div>
                <div>
                    <label id="LblcourrielCSS" style="visibility:hidden;" >Adresse courriel CSS</label>
                    <input id="courrielCSS" style="visibility:hidden;" name="courrielCSS"/> 
                </div>
            </div>

            <div>
                <label style="margin-top:1em;width:39em;text-align:left" id="LblProprio" for="proprio">Vous &ecirc;tes proprit&eacute;raire d'un ou de plusieurs immeubles situ&eacute;s sur notre territoire (MRC de Memphr&eacute;magog, MRC des Sources et MRC du Val-Saint-Fran&ccedil;ois) ? </label>
                <input style="margin-top:1em;" type="checkbox" id="proprio" name="proprio" onclick="proprioChecked();" />
                <div id="blocProprio">
                    <br/><label style="margin-top:1em;width:45em;text-align:left">Vous nous informez de ce changement d'adresse parce que:</label><br/>
                    <input style="margin-left:15px;margin-top:1em;width:10px;" type="radio" id="nouvellePropriete_1" name="nouvellePropriete" value="o" /> <span style="font-size:0.87em;"> vous avez acquis une nouvelle propri&eacute;t&eacute; (terrain, b&acirc;timent) ?</span><br/>
                    <input style="margin-left:15px;width:10px;" type="radio" id="nouvellePropriete_2" name="nouvellePropriete" value="n" /> <span style="font-size:0.87em;"> vous souhaitez simplement changer votre adresse de correspondance ?</span><br/><br/>

                    <label style="text-align:left;margin-top:1em;width:44em;visibility:hidden" id="LblnumImmeuble" for="numImmeuble">Pour chaque immeuble dont vous &ecirc;tes propri&eacute;taire, vous devez fournir le n&deg; de matricule de l'immeuble pour lequel un compte de taxe scolaire est &eacute;mis. Ce num&eacute;ro de 23 chiffres se trouve en haut, &agrave; droite de votre compte de taxe scolaire. (ex. 45008-0000-00-0000-00000000)<br/> <strong><span class="infoBulle" title="Sachez que le num&eacute;ro de matricule que nous utilisons est le m&ecirc;me que celui qui se trouve sur votre compte de taxes municipales.">Inscrire un n&deg; de matricule par ligne.<img src="images/question-mark.jpg"></span></strong></label><br/>
                    <textarea style="margin-bottom:15px;margin-top:5px;margin-left:300px;width:250px;visibility:hidden" id="numImmeuble" name="numImmeuble" rows="3" cols=""></textarea>        
                </div>              
            </div>          
        </fieldset> 
        <div class="comment">
            <label for="commentaire">Commentaire (optionel)</label>
            <textarea id="commentaire" name="commentaire" class="" rows="3" cols=""></textarea>
        </div>
        <div> 
            <center>
                <a class="button" href="#" onclick="$('#dialog-nom').html($('input#nom').val());
                $('#dialog-pnom').html($('input#pnom').val());
                $('#dialog-pnom').html($('input#pnom').val());
                $('#dialog-adresseAct1').html($('input#adresseAct1').val());
                $('#dialog-villeAct').html($('input#villeAct').val());
                $('#dialog-codePostalAct').html($('input#codePostalAct').val());
                $('#dialog-telephoneAct').html($('input#telephoneAct').val());
                $('#dialog-adresseNew1').html($('input#adresseNew1').val());
                $('#dialog-villeNew').html($('input#villeNew').val());
                $('#dialog-codePostalNew').html($('input#codePostalNew').val());
                $('#dialog-telephoneNew').html($('input#telephoneNew').val());
                $('#dialog-dateNew').html($('input#dateNew').val());
                (document.getElementById('nouvellePropriete_1').checked) ? $('#dialog-nouvellePropriete_1').html('<br/>Il s\'agit de l\'acquisition d\'une nouvelle propri&eacute;t&eacute;.<br/>') : $('#dialog-nouvellePropriete_1').html('');
                (document.getElementById('nouvellePropriete_2').checked) ? $('#dialog-nouvellePropriete_2').html('<br/>Il s\'agit simplement d\'un changement d\'adresse de correspondance.<br/>') : $('#dialog-nouvellePropriete_2').html('');
                (document.getElementById('employeCSS').checked) ? $('#dialog-employeCSS').html('- au Service des ressources humaines.<br/>') : $('#dialog-employeCSS').html('');
                (document.getElementById('proprio').checked) ? $('#dialog-proprio').html('- au Service de la taxe scolaire.<br/>') : $('#dialog-proprio').html('');
                $('#dialog').dialog('open');" />
                <img src="images/button.png"/>Envoyer                                                           
                </a>
            </center>
       </div>      
 </form>

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

这有点棘手。如果切换单选按钮,它将显示在$_POST中。如果没有切换,则不会提交,因此不在$_POST。复选框也是如此。

答案 1 :(得分:0)

除了已经回答的内容之外,我建议在你的一个单选按钮上使用'checked =“checked”'属性。这样您就可以更轻松地进行调试。它也符合HTML 4.01和XHTML 1.0。