bonjour a tout le monde c'est mon premier sujet je suis un debutant en php/html
je viens de créer un menu de date naissance mais je veux qui soit obligatoire voici le code :



<html>
<e>
<span class="label" style="color: #000000; font-weight: bold;">Date de naissance * :</span>
</e>

<form name="Cyb" action="action_page.php" method="post" id="form1">
	<span class="required" name="office" required>
	<x>
	<div class="styled-select veryshort" required><select name="nj" id="nj" onchange="BG_checkBirthDateElement();"><option selected="selected" value=""></option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select></div></x>
	<y>
	<div class="styled-select veryshort" required><select name="nm" id="nm" onchange="BG_checkBirthDateElement();"><option selected="selected" value=""></option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option></select></div></y>
	<z>
	<div class="styled-select short" required><select name="na" id="na" onchange="BG_checkBirthDateElement();"><option selected="selected" value=""></option><option value="1920">1920</option><option value="1921">1921</option><option value="1922">1922</option><option value="1923">1923</option><option value="1924">1924</option><option value="1925">1925</option><option value="1926">1926</option><option value="1927">1927</option><option value="1928">1928</option><option value="1929">1929</option><option value="1930">1930</option><option value="1931">1931</option><option value="1932">1932</option><option value="1933">1933</option><option value="1934">1934</option><option value="1935">1935</option><option value="1936">1936</option><option value="1937">1937</option><option value="1938">1938</option><option value="1939">1939</option><option value="1940">1940</option><option value="1941">1941</option><option value="1942">1942</option><option value="1943">1943</option><option value="1944">1944</option><option value="1945">1945</option><option value="1946">1946</option><option value="1947">1947</option><option value="1948">1948</option><option value="1949">1949</option><option value="1950">1950</option><option value="1951">1951</option><option value="1952">1952</option><option value="1953">1953</option><option value="1954">1954</option><option value="1955">1955</option><option value="1956">1956</option><option value="1957">1957</option><option value="1958">1958</option><option value="1959">1959</option><option value="1960">1960</option><option value="1961">1961</option><option value="1962">1962</option><option value="1963">1963</option><option value="1964">1964</option><option value="1965">1965</option><option value="1966">1966</option><option value="1967">1967</option><option value="1968">1968</option><option value="1969">1969</option><option value="1970">1970</option><option value="1971">1971</option><option value="1972">1972</option><option value="1973">1973</option><option value="1974">1974</option><option value="1975">1975</option><option value="1976">1976</option><option value="1977">1977</option><option value="1978">1978</option><option value="1979">1979</option><option value="1980">1980</option><option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option><option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option><option value="1987">1987</option><option value="1988">1988</option><option value="1989">1989</option><option value="1990">1990</option><option value="1991">1991</option><option value="1992">1992</option><option value="1993">1993</option><option value="1994">1994</option><option value="1995">1995</option><option value="1996">1996</option><option value="1997">1997</option><option value="1998">1998</option><option value="1999">1999</option><option value="2000">2000</option><option value="2001">2001</option><option value="2002">2002</option><option value="2003">2003</option><option value="2004">2004</option><option value="2005">2005</option><option value="2006">2006</option><option value="2007">2007</option><option value="2008">2008</option><option value="2009">2009</option><option value="2010">2010</option><option value="2011">2011</option><option value="2012">2012</option><option value="2013">2013</option></select></div>
	</z>
	</span>
	</form>
<button type="submit" form="form1" value="Submit">Submit</button>
</html>


merci bien de vouloir maider et merci davance
Modérateur
Bonjour,

Tu as apposé required sur une div. Tu devrais déplacer cet attribut sur le select et hop, le tour est joué !

Smiley smile
tu peux modifier le code s'il te plait je viens de commencer la programmation une semaine avant jai pas compris ce que tu viens de dire et merci pour ta reponse Smiley smile
Modérateur
En html 5, c'est l'attribut required qui rend un champ de formulaire obligatoire (textarea, input, select). Cet attribut est à placer dans la balise du champs que l'on souhaite rendre obligatoire, par exemple
<select required></select>


D'autre part, ton en-tête de page est erronée, il faut au minima déclarer un doctype, une en-tête et un corps de page.

Ainsi, tu devrais te conformer à cette trame
<!<!doctype html>
  <html lang="fr">
    <head>
      <title>Le titre de ta page</title>
      <meta name="description" content="Décrire brièvement la page"/>
      <meta charset="utf-8"/>
    </head>
    <body>
      <form name="Cyb" action="action_page.php" method="post" id="form1">
        <span class="label" style="color: #000000; font-weight: bold;">Date de naissance * :</span>
        <span class="required" name="office">
          <div class="styled-select veryshort">
            <select name="nj" id="nj" onchange="BG_checkBirthDateElement();" required>
              <option selected="selected" value=""></option>
              <option value="1">1</option>
            </select>
          </div>
        </span>
      </form>
    </body>
  </html>


Enfin, les balise <x>, <y>, <e> et autres n'existent pas à proprement parler,
ton bouton devrait être mit avant la balise de fermeture du formulaire (</form>) car il en fait partie,
et il y mille autres choses à dire de ton code mais en corrigeant déjà ceci ce serait un bon début.


Quelques liens:
Les attributs acceptés par la balise select
Tout ce que peut contenir la balise head

Des références pour apprendre:
W3Schools
Développez.com
Et bien sur les tutoriels Alsacréations Smiley cligne


Edit: Le span "date de naissance devrait lui aussi être contenu dans le form.
Modifié par Greg_Lumiere (21 Nov 2017 - 13:12)
Sinon, à la place de tes 300 lignes avec les jours/mois/années
tu mets ça :

<input type="date" name="anniversaire">
Sinon pour tes dates années et tout tu pouvais faire une boucle for/while, par exemple ça te donnerait :

<select>
<?php
for($year = 1920; 1920 < 2017; $year++) { ?>
<option value="<?= $year; ?>"><?= $year; ?></option>
<?php }
?>
</select>
merci pour tout vos repondre mais je veux seulement changer sur mon code pour le rendre obligatoire parce que c un partie de ma page HTML jai envoyer seulement cette partie que jai pas pu la reglé :s enfaite meme pour les <a> ... c parceque jai fais quelque effet CSS c pour ca merci bien davoir maider jattend vos reponse et merci encore