5568 sujets

Sémantique web et HTML

Bonjour à tous voilà j'ai un petit souci je voudrai faire valider mon site w3c le probleme c'est que je rencontre une erreur que je ne sais comment passer. J'ai en effet le message suivant: document type does not allow <p> here mais je ne comprend pas pourquoi je ne peut pas mettre une balise <p> voici mon code
<?php 
session_start ();


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Galerie photos</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
<script type="text/javascript">
	/**
	 * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
	 */
	function sendData(param, page)
	{
		if(document.all)
		{
			//Internet Explorer
			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}//fin if
		else
		{
		    //Mozilla
			var XhrObj = new XMLHttpRequest();
		}//fin else

		//définition de l'endroit d'affichage:
		var content = document.getElementById("ville");
		
		XhrObj.open("POST", page);

		//Ok pour la page cible
		XhrObj.onreadystatechange = function()
		{
			if (XhrObj.readyState == 4 && XhrObj.status == 200)
				content.innerHTML = XhrObj.responseText ;
		}

		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XhrObj.send(param);
	}//fin fonction SendData

    </script>
</head>
<body>


<div class="div_principale">
<div class="banniereduhaut">


<img class="normal" src="Images/Banner3.gif"  alt="banniere du site"/>

</div>

<div class="rech_rapide">
<?php 
include("rech_rapide.php");
?>
</div>

<div class="connexion">

<?php 
include("connexion.php");

	

?>

</div>

<div>
<?php
include("menu.php");
include("base.php");

?>

</div>
<div class="contenu">
<?php


   $i=0; // variable de test
   $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
       
 
    
   // Séléction de tous les enregistrements de la table Catégorie
   $rq="Select distinct(nompays) from photos order by nompays;";
   $result= mysql_query ($rq) or die ("Select impossible");
?> <fieldset>
<?php   
   echo "<form method='POST' action='galeriephotos.php'>";?>   <select size="1" name="pays" onchange="sendData('id='+this.value,'liresc2.php')" onkeyup="sendData('id='+this.value,'liresc.php')">

<?php     
   while ($dt=mysql_fetch_row($result))
   {
    // Remplir la liste déroulante des catégorie	
	echo "<option value=".($dt[0]).">".($dt[0])."</option>";
    if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
   }
   echo'</select><br/><br/>'; 
   ?>    
   
   



[b]<p id="ville"> [/b]
<select size="1" name="ville"> 
    
 <?php $rq="Select distinct (nomville) from photos where nompays='".$j."' order by nomville;";
    $result= mysql_query ($rq) or die ("Select impossible");
     // $i = initialise le variable i
    $i=0;
    while ($dt=mysql_fetch_row($result))
    { 
	 echo "<option value=".($dt[0]).">".($dt[0])."</option><br>";
    }       ?> 
	</select>
  
</p>

<input type='submit' name='valider' value='valider'  />
<?php
echo'</form>';
?>
</fieldset>

</div>

</div>

</body>
</html>

Tu te rend compte que tu nous balance une page PHP ?
Que ce n'est PAS du tout ce que le validateur va voir ?
Qu'on ne peut pas t'aider sans avoir le document interprété ?
ça peut très bien être une erreur dans ton PHP qui fait qu'une balise qui devrait se fermer ne le fait pas ou autre.

Accessoirement le sujet n'as pas sa place dans le salon PHP, puisque c'est un problème d'HTML.
Yasashii a écrit :
Tu te rend compte que tu nous balance une page PHP ?
Que ce n'est PAS du tout ce que le validateur va voir ?
Qu'on ne peut pas t'aider sans avoir le document interprété ?
ça peut très bien être une erreur dans ton PHP qui fait qu'une balise qui devrait se fermer ne le fait pas ou autre.

Accessoirement le sujet n'as pas sa place dans le salon PHP, puisque c'est un problème d'HTML.
Pas mieux ! Smiley langue

2 solutions :

* la meilleure : nous donner un lien vers la page en ligne.

* la bien : nous donner le code source généré ("Afficher la source").
Sinon, l'erreur «Element ... not allowed here» est claire: l'élément cité n'est pas autorisé dans le contexte où il est utilisé. Par exemple si tu utilises un LI en dehors de tout UL ou OL, un DT en dehors de tout DL, un INPUT directement dans un FORM avec un doctype Strict, ou autre configuration qui ne respecte pas les règles d'imbrication.

À savoir: l'erreur retournée par le validateur peut venir d'une erreur située plus haut dans le code HTML. Par exemple si ton code PHP qui génère tes OPTION se plante, et que du coup il manque des </option> ou des </select> dans ton code, eh bien tout élément qui vient ensuite sera considéré comme n'étant pas à sa place, vu le merdier des éléments pas refermés qui le précède. Smiley cligne
Bon voilà comme demande le code source généré de la page j'espere que ca sera plus clair.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Galerie photos</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
<script type="text/javascript">
	/**
	 * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
	 */
	function sendData(param, page)
	{
		if(document.all)
		{
			//Internet Explorer
			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}//fin if
		else
		{
		    //Mozilla
			var XhrObj = new XMLHttpRequest();
		}//fin else

		//définition de l'endroit d'affichage:
		var content = document.getElementById("ville");
		
		XhrObj.open("POST", page);

		//Ok pour la page cible
		XhrObj.onreadystatechange = function()
		{
			if (XhrObj.readyState == 4 && XhrObj.status == 200)
				content.innerHTML = XhrObj.responseText ;
		}

		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		XhrObj.send(param);
	}//fin fonction SendData

    </script>
</head>
<body>


<div class="div_principale">
<div class="banniereduhaut">


<img class="normal" src="Images/Banner3.gif"  alt="banniere du site"/>

</div>

<div class="rech_rapide">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Recherche rapide</title>
</head>

<body>
<script type="text/javascript">
        var clk=false;
        function main(chp)
        {    if (!clk)   
            {    chp.value="";
                  clk=true;   
            }
        }
    </script>
<p style="color:rgb(204,102,0);">
<form action="rech.php" method="post">

Entrez ici le nom d une ville <input type="text" onfocus="if ( !this.cliquer ) { this.value=''; this.cliquer=true; } " name="rech" value="ex [langue]aris"style="color:rgb(51,153,0)" />

 <input type="submit" value="Rechercher" style="color:rgb(204,102,0)" />
</form>
</p>
</body>
</html>
</div>

<div class="connexion">



<fieldset><legend><h2 style="color:rgb(204,102,0)">Connexion</h2></legend>

<script type="text/javascript">
        var clk=false;
        function main(chp)
        {    if (!clk)   
            {    chp.value="";
                  clk=true;   
            }
        }
    </script>

<form action="gest.php" method="post">
 <input type="text" name="pseudo" onfocus="if ( !this.cliquer ) { this.value=''; this.cliquer=true; } " value="pseudo"style="color:rgb(51,153,0)" />
 <input type="password" name="pass" onfocus="if ( !this.cliquer ) { this.value=''; this.cliquer=true; } " value="pass" style="color:rgb(51,153,0)"/>
 <input type="submit"  name="connexion" value="Connexion" style="color:rgb(204,102,0)" />

</form>

</fieldset>
</div>

<div>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>un menu d&eacute;roulant en CSS et javascript</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}
}
//-->
</script>



</head>
<body>

<!-- Menu  -->

<dl class="menu">
		<dt onmouseover="javascript:montre('smenu1');"><a href="accueil.php">Accueil</a></dt>
        <dt onmouseover="javascript:montre('smenu1');"><a href="recherche.php">Recherche d&eacute;taill&eacute;e</a></dt>
        
        <dt onmouseover="javascript:montre('smenu2');"onmouseout="javascript:montre();"><a href="visuphotos.php">Galerie photos</a></dt>
			<dd id="smenu2" onmouseover="javascript:montre('smenu2');" onmouseout="javascript:montre();">
									<li><a href="visuphotos.php">Visualiser les photos</a></li>

				

			</dd>	
         <dt onmouseover="javascript:montre('smenu1');"><a href="plandusite.php">Plan du site</a></dt>		
</dl>



</body>
</html>

</div>
<div class="contenu">
 <fieldset>
<form method='POST' action='galeriephotos.php'>   <select size="1" name="pays" onchange="sendData('id='+this.value,'liresc2.php')" onkeyup="sendData('id='+this.value,'liresc.php')">

<option value=france>france</option></select><br/><br/>    
   
   



<p id="ville"> [b] l'erreur se situe a ce niveau [/b] 
<select size="1" name="ville"> 
    
 <option value=corse>corse</option><br> 
	</select>
  
</p>

<input type='submit' name='valider' value='valider'  />
</form></fieldset>

</div>

</div>

</body>
</html>


Modifié par anthonydb1 (24 Dec 2008 - 08:03)
anthonydb1,

Il n'y a vraiment rien qui te saute aux yeux ? Smiley confuse

[b]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>[/b]
<div class="rech_rapide">
[#blue][b]<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Recherche rapide</title>
</head>
<body>[/b][/#]
[#red][b]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
</head>
<body>
</body>
</html>[/b][/#]
[#black][b]</body>
</html>[/b][/#]


Au minimum, tu as un petit soucis avec tes inclusions (tes fichiers sources contiennent un poil trop d'informations...), suit un petit soucis de détermination quant au choix du Doctype (transitional ou strict, là est la question...), de validité du code (relire la réponse de Florent V.) et "pour finir" peut-être un petit soucis d'encodage des caractères (à vérifier...)

Bonnes fêtes de fin d'années,
Cdt,
Sylvain
c'est "p't'être" à cause de ça :

</body>
</html>


juste un tout petit peu avant

EDIT : zut grilled
Modifié par Yasashii (24 Dec 2008 - 09:13)