Pourquoi utilises-tu un iframe ?

De plus, le code de ton formulaire est assez décourageant. Tu utilises une mise page en tableaux, tu n'as aucun <label> associé à tes champs, tu utilises des balises fonts qui sont obsolètes.

Tu n'as pas non plus de doctype sur ton frame.

Ce que je ferais si j'étais toi, je testerais mon formulaire sans mise en forme et avec une structure potable et valide. Par exemple :

<form action="process.php" method="post" name="form1" >
    <fieldset>
        <legend>Information sur la première personne</legend>
        <label for="nom_p1">Nom</label><input type="text" id="nom_p1" name="nom_p1" />
        <label for="email_p1">Email</label><input type="text" id="email_p1" name="email_p1" />
    </fieldset>
    
    <fieldset>
        <legend>Information sur la deuxième personne</legend>
        <label for="nom_p2">Nom</label><input type="text" id="nom_p2" name="nom_p2" />
        <label for="email_p2">Email</label><input type="text" id="email_p2" name="email_p2" />
    </fieldset>
</form>


Si le problème persiste, c'est sans doute ta validation php qui n'est pas bonne. Quelle méthode utilises-tu; les expressions régulières ?
Merci sorano pour ta réponse. Je découvre tout cela et ne sais pas coder du tout donc je pioche un peu mais pas toujours au bon endroit. Ceci dit si tu peux m'accompagné dans ma réflexion je t'en remercie. Voila j'ai construit le formulaire en fonction de ce que tu m'as donné comme piste. Ci dessous le code. Maintenant il faut que je m'attaque au fichier process.php avec les exigence qui sont les mienne.
1 que le formulaire s'afiche comme une confirmation de bonne saisie
2 que ce formulaire ecrit par la première personne arrive par mail agréable à lire à la fois à la deuxième personne et à l'association.
3 enfin que je puisse avoir une liste des echanges effectués
Bon je vais m'atteler à tout cela. Encore merci. Ci-dessous mon code pour que tu puisse me dire.

<!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>Document sans nom</title>
</head>

<body>
<form action="process.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
 
  <fieldset>
  <legend>Information sur la première personne</legend>
  <label for="nom-p1"><br />nom : </label><input type="text" name="nom-p1" id="nom-p1" />
  <label for="prenom_p1">prenom :</label><input type="text" name="prenom_p1" id="prenom_p1" />
  <label for="ville_p1"><br /><br />ville :</label><input type="text" name="ville_p1" id="ville_p1" />
  <label for="email_p1"> email : </label><input type="text" name="email_p1" id="email_p1" />
  </fieldset>
  
  <fieldset>
  <legend>Information sur la deuxième personne</legend>
  <label for="nom_p2"><br />nom : </label><input type="text" name="nom_p2" id="nom_p2" />
  <label for="prenom_p2">prenom :</label><input type="text" name="prenom_p2" id="prenom_p2" />
  <label for="ville_p2"><br /><br />ville : </label><input type="text" name="ville_p2" id="ville_p2" />
  <label for="email_p2"> email : </label><input type="text" name="email_p2" id="email_p2" />
  </fieldset>
  
  <fieldset>
  <legend>Nature de l'échange</legend>
  <label for="intitule">intitulé : </label><input type="text" name="intitule" id="intitule" />
  <label for="categorie">catégorie :</label><select name="categorie" id="categorie">
  <option>bricolage</option>
  <option>formation</option>
  <option>jardinage</option>
  <option>réparation</option>
  <option>loisirs</option>
  </select>
  <label for="date"><br /><br />date :</label><input type="text" name="date" id="date" />
  <label for="lieu"> lieu :</label><input type="text" name="lieu" id="lieu" />
    <label for="ponctuel"><br /><br />ponctuel</label><input type="checkbox" name="ponctuel" id="ponctuel" />
  <label for="regulier"> régulier</label><input type="checkbox" name="regulier" id="regulier" />
  <label for="individuel">individuel</label><input type="checkbox" name="individuel" id="individuel" />
  <label for="collectif"> collectif</label><input type="checkbox" name="collectif" id="collectif" />
  </fieldset>
  
  <fieldset>
  <legend>Montant de l'échange </legend>
  <label for="montant"><br />montant</label><input type="text" name="montant" id="montant" />
  </fieldset>
  
  <fieldset>
  <legend>message</legend><label for="texte">texte</label><p><textarea name="texte" id="texte" cols="45" rows="5"></textarea></p>
  <label for="fiche">fichier</label><input type="file" name="fiche" id="fiche" /></fieldset>
</form>
</body>
</html>

Peut être existe t'il des exemples pour le fichier "cible" en l'occurence pour moi process.php afin de le construire le mieux possible.
Modifié par totoutarts (29 Jan 2010 - 08:50)
J'ai corrigé ton code. En gros, les <br /> sont utilisés dans ton code pour du formatage visuelle. Les CSS sont là pour ça. Au fait, si tu colles du code, utilise les balises de colorisation syntaxique, c'est plaisant pour les yeux Smiley smile

J'ai ajouté une liste car on pourrait dire que sémantiquement parlant, c'est une liste d'item de formulaire dans chaque fieldset et tu pourras te servir des <li> pour appliquer des CSS.

Le code est trop gros alors tu peux aller à cette adresse

http://pastebin.com/m15243b0c

Pour ton truc de fichier cible, je suis pas sur de comprendre. Si tu veux corriger ton process, tu pourrais simplement afficher ce que tu reçois.


if(isset($_POST)){
    var_dump($_POST);
}


Tu pourras ainsi voir s'il y a des différences entre Safari et les autres navigateurs dans ce que ça te sortira.
Modifié par Sorano (28 Jan 2010 - 18:40)
Bonjour Totoutarts et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien "Aide" qui apparaît tout en haut du forum est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
Bonjour à vous tous

Voila je reviens vers vous pour me donner votre avis sur la "propreté" de ce code. J'ai modifié quelque chose d'existant. Sorano je n'ais pas vraiment saisi l'histoire des .<br>. Cela nescessite une feuille de style ?

Merci à vous



<!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>
<title>Le SEL</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><link href="style.css" rel="stylesheet" type="text/css">
<!-- calendar stuff -->
<link rel="stylesheet" type="text/css" href="calendar/calendar-blue2.css" />
<script type="text/javascript" src="calendar/calendar.js"></script>
<script type="text/javascript" src="calendar/calendar-en.js"></script>
<script type="text/javascript" src="calendar/calendar-setup.js"></script>
<!-- END calendar stuff -->

 <!-- expand/collapse function -->
<SCRIPT type=text/javascript>
<!--
function collapseElem(obj)
{
var el = document.getElementById(obj);
el.style.display = 'none';
}


function expandElem(obj)
{
var el = document.getElementById(obj);
el.style.display = '';
}


//-->
</SCRIPT>
<!-- expand/collapse function -->


<!-- expand/collapse function -->
 <SCRIPT type=text/javascript>
<!--

// collapse all elements, except the first one
function collapseAll()
{
var numFormPages = 1;

for(i=2; i <= numFormPages; i++)
{
currPageId = ('mainForm_' + i);
collapseElem(currPageId);
}
}

//-->
</SCRIPT>
<!-- expand/collapse function -->


 <!-- validate -->
<SCRIPT type=text/javascript>
<!--
function validateField(fieldId, fieldBoxId, fieldType, required)
{
fieldBox = document.getElementById(fieldBoxId);
fieldObj = document.getElementById(fieldId);

if(fieldType == 'text'  ||  fieldType == 'textarea'  ||  fieldType == 'password'  ||  fieldType == 'file'  ||  fieldType == 'phone'  || fieldType == 'website')
{	
if(required == 1 && fieldObj.value == '')
{
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;					
}

}


else if(fieldType == 'menu'  || fieldType == 'country'  || fieldType == 'state')
{	
if(required == 1 && fieldObj.selectedIndex == 0)
{				
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;					
}

}


else if(fieldType == 'email')
{	
if((required == 1 && fieldObj.value=='')  ||  (fieldObj.value!=''  && !validate_email(fieldObj.value)))
{				
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;					
}

}



}

function validate_email(emailStr)
{		
apos=emailStr.indexOf("@");
dotpos=emailStr.lastIndexOf(".");

if (apos<1||dotpos-apos<2) 
{
return false;
}
else
{
return true;
}
}


function validateDate(fieldId, fieldBoxId, fieldType, required,  minDateStr, maxDateStr)
{
retValue = true;

fieldBox = document.getElementById(fieldBoxId);
fieldObj = document.getElementById(fieldId);	
dateStr = fieldObj.value;


if(required == 0  && dateStr == '')
{
return true;
}


if(dateStr.charAt(2) != '/'  || dateStr.charAt(5) != '/' || dateStr.length != 10)
{
retValue = false;
}	

else	// format's okay; check max, min
{
currDays = parseInt(dateStr.substr(0,2),10) + parseInt(dateStr.substr(3,2),10)*30  + parseInt(dateStr.substr(6,4),10)*365;
//alert(currDays);

if(maxDateStr != '')
{
maxDays = parseInt(maxDateStr.substr(0,2),10) + parseInt(maxDateStr.substr(3,2),10)*30  + parseInt(maxDateStr.substr(6,4),10)*365;
//alert(maxDays);
if(currDays > maxDays)
retValue = false;
}

if(minDateStr != '')
{
minDays = parseInt(minDateStr.substr(0,2),10) + parseInt(minDateStr.substr(3,2),10)*30  + parseInt(minDateStr.substr(6,4),10)*365;
//alert(minDays);
if(currDays < minDays)
retValue = false;
}
}

if(retValue == false)
{
fieldObj.setAttribute("class","mainFormError");
fieldObj.setAttribute("className","mainFormError");
fieldObj.focus();
return false;
}
}
//-->
</SCRIPT>
<!-- end validate -->
<style>
ul { list-style-type:none; list-style-position:outside; margin:0; padding:0; }

ul li { margin:5px 0 5px 0; }

label {
	display: block;
	float:left;
	width:100px;
	text-transform:capitalize;
}

</style>
</head>
<body onLoad="collapseAll()">
<div id="mainForm">
<div id="formHeader">
<h2 class="formInfo">sel</h2>
<p class="formInfo"></p>
</div>


<BR/><!-- begin form -->
			
<form method=post enctype=multipart/form-data action=processor.php onSubmit="return validatePage1();"><ul class=mainForm id="mainForm_1">
	
<fieldset>
<legend>information premiere personne</legend>
<li class="mainForm" id="fieldBox_1"><label class="formFieldQuestion">nom&nbsp;*</label><input class=mainForm type=text name=field_1 id=field_1 size='20' value=''></li>
<li class="mainForm" id="fieldBox_2"><label class="formFieldQuestion">prenom&nbsp;*</label><input class=mainForm type=text name=field_2 id=field_2 size='20' value=''></li>
<li class="mainForm" id="fieldBox_3"><label class="formFieldQuestion">ville&nbsp;*</label><input class=mainForm type=text name=field_3 id=field_3 size='20' value=''></li>
<li class="mainForm" id="fieldBox_4"><label class="formFieldQuestion">mail&nbsp;*</label><input class=mainForm type=email name=field_4 id=field_4 size=20 value="" style="background-image:url(imgs/email.png); background-repeat: no-repeat;  padding: 2px 2px 2px 25px;"></li>
</fieldset>
</br>
<fieldset>
<legend>information deuxième personne</legend>
<li class="mainForm" id="fieldBox_5"><label class="formFieldQuestion">nom&nbsp;*</label><input class=mainForm type=text name=field_5 id=field_5 size='20' value=''></li>
<li class="mainForm" id="fieldBox_6"><label class="formFieldQuestion">prenom&nbsp;*</label><input class=mainForm type=text name=field_6 id=field_6 size='20' value=''></li>
<li class="mainForm" id="fieldBox_7"><label class="formFieldQuestion">ville&nbsp;*</label><input class=mainForm type=text name=field_7 id=field_7 size='20' value=''></li>
<li class="mainForm" id="fieldBox_8"><label class="formFieldQuestion">mail&nbsp;*</label><input class=mainForm type=email name=field_8 id=field_8 size=20 value="" style="background-image:url(imgs/email.png); background-repeat: no-repeat;  padding: 2px 2px 2px 25px;"></li>
</fieldset>
</br>
<fieldset>
<legend>nature de l'échange</legend>
<li class="mainForm" id="fieldBox_9"><label class="formFieldQuestion">intitule&nbsp;*</label><input class=mainForm type=text name=field_9 id=field_9 size='20' value=''></li>
<li class="mainForm" id="fieldBox_10"><label class="formFieldQuestion">categorie&nbsp;*</label><select class=mainForm name=field_10 id=field_10><option value=''></option><option value="bricolage">bricolage</option><option value="reparation">reparation</option><option value="jardinage">jardinage</option><option value="formation">formation</option><option value="administratif">administratif</option><option value="cours">cours</option><option value="autres">autres</option></select></li>
<li class="mainForm" id="fieldBox_11"><label class="formFieldQuestion">date&nbsp;*</label><input type=text  name=field_11 id=field_11 value=""><button type=reset class=calendarStyle id=fieldDateTrigger_11></button><SCRIPT type='text/javascript'>   Calendar.setup({
								inputField     :    "field_11",   
								ifFormat       :    "%m/%d/%Y",   
								showsTime      :    false,          
								button         :    "fieldDateTrigger_11",
								singleClick    :    true,           
								step           :    1                
								});</SCRIPT></li>
<li class="mainForm" id="fieldBox_12"><label class="formFieldQuestion">lieu&nbsp;*</label><input class=mainForm type=text name=field_12 id=field_12 size='20' value=''></li>
</fieldset>
</br>
<fieldset>
<legend>Montant de l'échange</legend>
<li class="mainForm" id="fieldBox_13"><label class="formFieldQuestion">montant&nbsp;*</label><input class=mainForm type=text name=field_13 id=field_13 size='20' value=''></li>
</fieldset>
</br>
<fieldset>
<legend>Description de l'échange</legend>
<li class="mainForm" id="fieldBox_14"><label class="formFieldQuestion">ponctuel&nbsp;</label><span><input class=mainForm type=checkbox name=field_14[] id=field_14_option_1 value="oui" /></span></li>
<li class="mainForm" id="fieldBox_15"><label class="formFieldQuestion">regulier&nbsp;</label><span><input class=mainForm type=checkbox name=field_15[] id=field_15_option_1 value="oui" /></span></li>
<li class="mainForm" id="fieldBox_16"><label class="formFieldQuestion">individuel&nbsp;</label><span><input class=mainForm type=checkbox name=field_16[] id=field_16_option_1 value="oui" /></span></li>
<li class="mainForm" id="fieldBox_17"><label class="formFieldQuestion">collectif&nbsp;</label><span><input class=mainForm type=checkbox name=field_17[] id=field_17_option_1 value="oui" /></span></li>
</fieldset>
</br>
<fieldset>
<legend>Commentaires</legend>
<li class="mainForm" id="fieldBox_18"><label class="formFieldQuestion">texte&nbsp;</label><textarea class=mainForm  name=field_18 id=field_18 rows=5 cols=40></textarea></li>
<li class="mainForm" id="fieldBox_19"><label class="formFieldQuestion">fichier&nbsp;</label><input class=mainForm type=file name=field_19 id=field_19 value=""></li>
		
		
<!-- end of this page -->

<!-- page validation -->
<SCRIPT type=text/javascript>
<!--
function validatePage1()
{
retVal = true;
if (validateField('field_1','fieldBox_1','text',1) == false)
 retVal=false;
if (validateField('field_2','fieldBox_2','text',1) == false)
 retVal=false;
if (validateField('field_3','fieldBox_3','text',1) == false)
 retVal=false;
if (validateField('field_4','fieldBox_4','email',1) == false)
 retVal=false;
if (validateField('field_5','fieldBox_5','text',1) == false)
 retVal=false;
if (validateField('field_6','fieldBox_6','text',1) == false)
 retVal=false;
if (validateField('field_7','fieldBox_7','text',1) == false)
 retVal=false;
if (validateField('field_8','fieldBox_8','email',1) == false)
 retVal=false;
if (validateField('field_9','fieldBox_9','text',1) == false)
 retVal=false;
if (validateField('field_10','fieldBox_10','menu',0) == false)
 retVal=false;
if (validateDate('field_11','fieldBox_11','date',1,'','') == false)
 retVal=false;
if (validateField('field_12','fieldBox_12','text',1) == false)
 retVal=false;
if (validateField('field_13','fieldBox_13','text',1) == false)
 retVal=false;
if (validateField('field_14','fieldBox_14','checkbox',0) == false)
 retVal=false;
if (validateField('field_15','fieldBox_15','checkbox',0) == false)
 retVal=false;
if (validateField('field_16','fieldBox_16','checkbox',0) == false)
 retVal=false;
if (validateField('field_17','fieldBox_17','checkbox',0) == false)
 retVal=false;
if (validateField('field_18','fieldBox_18','textarea',0) == false)
 retVal=false;
if (validateField('field_19','fieldBox_19','file',0) == false)
 retVal=false;

if(retVal == false)
{
alert('Please correct the errors.  Fields marked with an asterisk (*) are required');
return false;
}
return retVal;
}
//-->
</SCRIPT>

<!-- end page validaton -->


<!-- next page buttons -->
<li class="mainForm" id="fieldBox_19">
<label class="formFieldQuestion">
<img src="CaptchaSecurityImages.php" /></label><li class="mainForm">
<label class="formFieldQuestion">

</br><a class=info href=#><img src=imgs/tip_small.png border=0><span class=infobox></span></a><BR><BR>&nbsp;</label><input id="captchaForm" name="security_code" class="mainForm" type="text"/>
</li><li class="mainForm">
<input id="saveForm" class="mainForm" type="submit" value="Submit" />
</li>

</form>
<!-- end of form -->
<!-- close the display stuff for this page -->
</ul></div><div id="footer"><p class="footer"><a class=footer href=http://phpformgen.sourceforge.net>Generated by phpFormGenerator</a></p></div>

</body>
</html>

Modifié par totoutarts (29 Jan 2010 - 09:08)
Salut,

Sorano a écrit :


if(isset($_POST)){
    var_dump($_POST);
}
$_POST existe toujours. Smiley cligne

C'est plutôt :
if(!empty($_POST)){
    echo'<pre>';
    print_r($_POST);
    echo'</pre>';
}


Sorano a écrit :
J'ai ajouté une liste car on pourrait dire que sémantiquement parlant, c'est une liste d'item de formulaire dans chaque fieldset et tu pourras te servir des <li> pour appliquer des CSS.
Mouaip... on pourrait aussi dire que plusieurs paragraphes placés sous un titre de section sont une liste de paragraphes. Smiley langue
Je ne vois pas bien l'intérêt (sauf se "simplifier" la vie côté css ?) alors qu'il suffit d'un élément P pour passer à la ligne : P / LABEL / INPUT
Modifié par Heyoan (29 Jan 2010 - 11:39)
Heyoan, merci de cette correction php, je suis visiblement rouillé.

Sais-tu, pour nos "listes" s'il y a une méthode mieux au niveau de l'accessibilité, référencement ou autres puisque les deux sont valides.

totoutarts, pour les <br /> ce sont des sauts de ligne pour du texte et tu t'en sers pour visuellement séparer des éléments. Or, ce qui touche le visuel et l'esthétisme devrait être fait en CSS, avec des marges par exemple.

Tu n'as pas besoin de copier autant de classe sur tes <li> et sur tes <label>. Tu peux faire un CSS spécifique pour chacun d'eux.


fieldset ul li { propriété:valeur }
fieldset ul li label { propriété:valeur }


Sinon, je ne trouve pas ton code javascript très optimisé. Bon, il y a plusieurs façon de faire de la validation de formulaire mais voici comment je le ferais. Je me ferais un array d'objets que tu boucles, tout simplement.

Je crois qu'avec cet exemple, tu comprendras le principe et encore là, il y a moyen de simplifier.


<script type="text/javascript" language="javascript">
	function validate_text(obj){
		var r = true;
		
		if(obj.value == ''){
			r = false;
		}
		return r;
	}
	
	function validate_checkbox(obj){
		var r = true;
		if(obj.checked == false ){
			r = false;
		}
		
		return r;
	}
	
	function validate_form(form){
		var retVal = true;
		var fields = new Array ( new Object({"name": "nom-p1", "type": "text" }), new Object({"name": "regulier", "type": "checkbox" }) );
		
		for(var x=0; x<fields.length; x++){
			switch(fields[x]['type']){
				case 'text':
					if(validate_text( document.getElementById(fields[x]['name']) ) == false ){
						retVal = false;
						alert('text false');
					}
					break;
				case 'checkbox' :
					if(validate_checkbox( document.getElementById(fields[x]['name']) ) == false ){
						retVal = false;
						alert('check false');
					}
					break
			}
		}
		return retVal;
	}

</script>


Voici aussi le code HTML pour l'exemple

<body>
<form  enctype="multipart/form-data" method="post" name="form1" id="form1" onsubmit="return validate_form ( this );">
  <fieldset>
      <legend>Information sur la première personne</legend>
      <ul>
        <li>
          <label for="nom-p1"> nom : </label>
          <input type="text" name="nom-p1" id="nom-p1" />
        </li>
        <li>
          <label for="prenom_p1">prenom :</label>
          <input type="text" name="prenom_p1" id="prenom_p1" />
        </li>
        <li>
          <label for="ville_p1"> ville :</label>
          <input type="text" name="ville_p1" id="ville_p1" />
        </li>
        <li>
          <label for="email_p1"> email : </label>
          <input type="text" name="email_p1" id="email_p1" />
        </li>
      </ul>
  </fieldset>
  <fieldset>
      <legend>Information sur la deuxième personne</legend>
      <ul>
        <li>
          <label for="nom_p2"> nom : </label>
          <input type="text" name="nom_p2" id="nom_p2" />
        </li>
        <li>
          <label for="prenom_p2">prenom :</label>
          <input type="text" name="prenom_p2" id="prenom_p2" />
        </li>
        <li>
          <label for="ville_p2"> ville : </label>
          <input type="text" name="ville_p2" id="ville_p2" />
        </li>
        <li>
          <label for="email_p2"> email : </label>
          <input type="text" name="email_p2" id="email_p2" />
        </li>
      </ul>
  </fieldset>
  <fieldset>
      <legend>Nature de l'échange</legend>
      <ul>
        <li>
          <label for="intitule">intitulé : </label>
          <input type="text" name="intitule" id="intitule" />
        </li>
        <li>
          <label for="categorie">catégorie :</label>
          <select name="categorie" id="categorie">
            <option>bricolage</option>
            <option>formation</option>
            <option>jardinage</option>
            <option>réparation</option>
            <option>loisirs</option>
          </select>
        </li>
        <li>
          <label for="date"> date :</label>
          <input type="text" name="date" id="date" />
        </li>
        <li>
          <label for="lieu"> lieu :</label>
          <input type="text" name="lieu" id="lieu" />
        </li>
        <li>
          <label for="ponctuel"> ponctuel</label>
          <input type="checkbox" name="ponctuel" id="ponctuel" />
        </li>
        <li>
          <label for="regulier"> régulier</label>
          <input type="checkbox" name="regulier" id="regulier" />
        </li>
        <li>
          <label for="individuel">individuel</label>
          <input type="checkbox" name="individuel" id="individuel" />
        </li>
        <li>
          <label for="collectif"> collectif</label>
          <input type="checkbox" name="collectif" id="collectif" />
        </li>
        <li>
          <label for="montant"> montant Montant de l'échange</label>
          <input type="text" name="montant" id="montant" />
        </li>
      </ul>
  </fieldset>
  <fieldset>
      <legend>Message</legend>
      <ul>
        <li>
          <label for="texte">texte</label>
          <textarea name="texte" id="texte" cols="45" rows="5"></textarea>
        </li>
        <li>
          <label for="fiche">fichier</label>
          <input type="file" name="fiche" id="fiche" />
        </li>
      </ul>
  </fieldset>
  <input type="submit" name="submit" id="submit" />
</form>
</body>


Tu pourrais changer les CSS dans les fonctions de validation et tu peux ajouter autant de propriété que tu veux dans tes objets. Cependant, certaines propriétés pourraient être utilisé avec javascript comme la propriété obj.type mais puisque tu avais une validation sur website, email et je sais pas quoi d'autres, je me suis dit que tu avais surment des raisons alors j'ai mis le type dans l'objet.

J'ai séparé la validation de chaque type en fonction pour que tu comprennes bien mais tu remarques sans doute que le code se ressemble pas mal et tu pourrais sans doute remettre ça en une seule fonction.
Modifié par Sorano (29 Jan 2010 - 14:38)
Sorano a écrit :
Sais-tu, pour nos "listes" s'il y a une méthode mieux au niveau de l'accessibilité, référencement ou autres puisque les deux sont valides.
A ma connaissance il n'y a aucune différence en terme d'accessibilité ou de référencement.

Par contre une liste apporte une "sémantique" en plus... qui n'a à priori pas lieu d'être et d'ailleurs si on désactive les CSS il me semble que la présence de puces est en trop puisqu'un couple LABEL / INPUT par ligne est suffisant.

Je ne retrouve plus le sujet en question mais quelqu'un avait justifié l'emploi de P notamment parce que lorsqu'on réaffiche les valeurs saisies dans un formulaire c'était cet élément qui lui semblait le plus logique : <p>libellé : valeur saisie</p> (et ça m'avait sonné juste Smiley smile ).