5568 sujets

Sémantique web et HTML

Bonjour,

j'essaie de valider un site xhtml mais des erreurs subsistent Smiley smile

Je ne comprend pas à quoi elles correspondent


Error Line 44 column 357: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag.
...value="856c317269cd654512fcfdae77d8a153" />
The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").
?

Error Line 45 column 43: document type does not allow element "select" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag.
<select name="num_menu" onchange="submit()">



<div id="contenu">
			<br /><div class="roll">Menus et ap&eacute;ritifs raffinés, qualité des produits, efficacité, maîtrise parfaite du goût, le <i>Mise en bouche</i> sera votre partenaire incontournable.</div><br /><br /><br /><form title="form_menu" action="index.php?page=menu" method="post">
<select name="num_menu" onchange="submit()">
<option> - Selection d'un menu ou ap&eacute;ritif - </option>
<option value='5'>Apéritif Classique</option>
<option value='9'>Apéritif Gourmet</option>
<option value='10'>Apéritif Prestige</option>
<option value='11'>Menu 1</option>
<option value='12'>Menu 2</option>
<option value='13'>Menu 3</option>
<option value='14'>Menu 4</option>
<option value='15'>Menu 5</option>
</select></form><br />

</div>

Modifié par ToxiK (01 Feb 2007 - 15:39)
Administrateur
Hello,

Tu as posté dans le salon CSS. Or manifestement il s'agit d'une validation XHTML.

Je déplace dans le bon salon :

HTML, XHTML, sémantique web
Les langages hypertexte, l'utilisation des balises, la structure des sites internet et leur validation W3C
Ok merci Smiley smile Dsl pour le trompage de catégorie

Par contre j'ai du mal à comprendre... On ne peux plus mettre de <select> dans une balise <form> ?

Ou j'ai uns erreur de syntaxe que je n'arrive pas à voir.
Modifié par ToxiK (21 Jan 2007 - 19:38)
Administrateur
ToxiK a écrit :
Par contre j'ai du mal à comprendre... On ne peux plus mettre de <select> dans une balise <form> ?

Non pas directement puisque <select> est un élément de type en-ligne.
Mais rien ne t'empêche de faire ainsi :

<form>
   <p> [i]<-- élément de type bloc[/i]
      <select>  [i]<-- élément de type en-ligne[/i]
   </p>
</form>


Idem pour <input>
Modifié par Raphael (21 Jan 2007 - 19:42)
Trop sweet ça marche Smiley lol Merci Smiley smile

Par contre j'ai toujours cet erreur :

Error Line 50 column 157: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag.
...="4491c49bb64b50506d41bf96db0e4da9" />
The mentioned element is not allowed to appear in the context in which you've placed it; the other mentioned elements are the only ones that are both allowed there and can contain the element mentioned. This might mean that you need a containing element, or possibly that you've forgotten to close a previous element.
One possible cause for this message is that you have attempted to put a block-level element (such as "<p>" or "<table>") inside an inline element (such as "<a>", "<span>", or "<font>").


Et à partir de la ligne 50 y a ça :

<br /><form title="form_buffet" action="index.php?page=buffet" method="post">
<p><select name="num_buffet" onchange="submit()">
<option> - Selection d'un buffet - </option>
<option value="16">Buffet saveurs du monde</option>
<option value="22">Buffet tendance Provencale et Asie</option>
<option value="23">Formule buffet avec plats chauds</option>
</select></p></form><br />

Modifié par ToxiK (21 Jan 2007 - 22:59)
ToxiK a écrit :
Trop sweet ça marche Smiley lol Merci Smiley smile

Tu peux dans ce cas indiquer que ton problème a été résolu en éditant ton premier message afin de faciliter les recherches futures. Smiley cligne
ToxiK a écrit :
Oui mais tout n'est pas résolu ^^
Ah oui mais tu édites ton message après que j'ai posté le mien, c'est pas très fair-play ça, je passe pour quoi moi maintenant... Smiley ravi
Administrateur
ToxiK a écrit :
S'il vous plait aidez moi ^^

Voici le liens du validateurs au cas où ça serait plus explicite :

Validateur.ca

J'ai bien peur que tes <br /> (éléments en-ligne) ne se balladent directement dans le <body>, ce qui n'est pas autorisé en XHTML strict Smiley ohwell

D'ailleurs à quoi te servent-ils ? Ne serait-ce pas plus simple d'appliquer des marges hautes et basses à tes éléments pour les séparer ?
Modifié par Raphael (22 Jan 2007 - 14:45)
Non les <br /> de la page sont dans un div global de l'autre page par un include.

Mais c'est vrai que je vais plutôt metre un margin-top pour les 2 <br /> du haut.

Le problème subsiste, je ne vois pas du tout ...

ps : dsl pour le mp Smiley smile
Modifié par ToxiK (22 Jan 2007 - 16:05)
Administrateur
ToxiK a écrit :
Le problème subsiste, je ne vois pas du tout ...

Et pourtant il est devant tes yeux.

Revois la ligne 50 :
<div><br /><form title="form_buffet" action="index.php?page=buffet" method="post"><input type="hidden" name="PHPSESSID" value="df4474a24001fc34a0856eb78790f593" />


... et compare-là au message que je t'ai donné par rapport aux éléments qui ne peuvent pas être directemtent enfants de <form>
??
D'où est ce qu'il sort ce
<input type="hidden" name="PHPSESSID" value="df4474a24001fc34a0856eb78790f593" />


Il il n'est pas dans ma page de code locale, et quand je fais afficher le code source de la page hébergée il n'y est aps non plus Smiley sweatdrop
c'est ton serveur apache qui te le génère automatiquement selon des réglages du php.ini donc s'il n'est pas dans ton code source, tu n'as pas à t'en préoccuper.
et pour ta ligne 50 :
<div><br /><form...
tu as un <br /> qui sépare "rien" d'un formulaire donc soit, méthode "sale", tu mets un espace insécable :

<div>& nbsp;<br /><form...
(sans l'espace)

soit, méthode propre, tu mets un margin ou un padding à ton formulaire :
<div><form style="margin-top:1em;" ...