Page 1 sur 1

Problème attribut : name dans un formulaire (PHP - XHTML)

Posté : 14 sept. 2006, 21:36
par jpsartre
Bonsoir,

J'ai une erreur lors de la validatin XHTML à cause d'un attribut name dans mes balises form, input...
Name est interdit en XHTML 1.0 strict. Il est demandé de remplacer par id.
Le code :
   <form name="form_pret" id="form_pret" method="post" action="Simulateur/simulation.php">
 <fieldset>            
  <legend>Simulation</legend>
		<p>
        <label>
                    <input name="montant" type="text" class="01" id="montant" value="<? if(isset($montant)) echo $montant; ?>" />
          Montant (&euro;)</label>
        </p> 
				   	
        <p> 
          <label> 
          <input name="taux" type="text" class="01" id="taux" value="<? if(isset($taux)) echo $taux; ?>" />
          Taux (%)</label>
        </p> 
						
        <p> 
          <label> 
          <input name="duree" type="text" class="01" id="duree" value="<? if(isset($duree)) echo $duree; ?>" />
          Dur&eacute;e (mois)</label>
           </p>  
                    <?
                    
	  		if(!isset($echeance)) $echeance = 12;
	  	    ?>
			<input name="echeance" type="hidden" value="12"  id="echeance" />
                    <input name="frm_pret" type="hidden" value="ok" /> <input name="bouton" type="submit" id="bouton" value="Calculer" /> 
 </fieldset>                
            </form>
Le problème est que quand l'enlève name, et que je mets id à la place, ça ne marche pas, la page php qui traîte les informations ne reçoit rien.

J'ai l'impression, si l'on peut dire, que ça vient de la première ligne.

Si quelqu'un peut m'aider,

Merci

Posté : 14 sept. 2006, 21:48
par Cyrano
Attention, l'attribut name est effectivement interdit en XHTML dans la balise <form>, mais pas dans les éléments du formulaire. Donc ton formulaire validé devrait ressembler à ceci:
<form id="form_pret" method="post" action="Simulateur/simulation.php">
  <fieldset>            
    <legend>Simulation</legend>
      <p>
        <label>
          <input name="montant" type="text" class="01" id="montant" value="<? if(isset($montant)) echo $montant; ?>" />
          Montant (&euro;)
        </label>
      </p> 
      <p> 
        <label>
          <input name="taux" type="text" class="01" id="taux" value="<? if(isset($taux)) echo $taux; ?>" />
          Taux (%)
        </label>
      </p>
      <p> 
        <label>
          <input name="duree" type="text" class="01" id="duree" value="<? if(isset($duree)) echo $duree; ?>" />
          Dur&eacute;e (mois)
        </label>
      </p>  
<?php
if(!isset($echeance)) $echeance = 12;
?>
      <input name="echeance" type="hidden" value="12"  id="echeance" />
      <input name="frm_pret" type="hidden" value="ok" />
      <input name="bouton" type="submit" id="bouton" value="Calculer" /> 
  </fieldset>                
</form>
Je sugèrerais toutefois une petite amélioration en remplaçant les balises <p> qui encadrent les champs et en utilisant une propriété CSS : display: block sur l'élément label qui aura le même effet :
<form id="form_pret" method="post" action="Simulateur/simulation.php">
  <fieldset>            
    <legend>Simulation</legend>
      <label>
        <input name="montant" type="text" class="01" id="montant" value="<? if(isset($montant)) echo $montant; ?>" />
        Montant (&euro;)
      </label>
      <label>
        <input name="taux" type="text" class="01" id="taux" value="<? if(isset($taux)) echo $taux; ?>" />
        Taux (%)
      </label>
      <label>
        <input name="duree" type="text" class="01" id="duree" value="<? if(isset($duree)) echo $duree; ?>" />
        Dur&eacute;e (mois)
      </label>
<?php
if(!isset($echeance)) $echeance = 12;
?>
      <input name="echeance" type="hidden" value="12"  id="echeance" />
      <input name="frm_pret" type="hidden" value="ok" />
      <input name="bouton" type="submit" id="bouton" value="Calculer" /> 
  </fieldset>                
</form>
CSS :

Code : Tout sélectionner

#form_pret.label { display: block; }

Posté : 14 sept. 2006, 22:09
par jpsartre
This Page Is Valid XHTML 1.0 Strict!
Et le php marche aussi. Merci beaucoup, j'ai aussi supprimé les <p> comme tu me l'as indiqué, parfait.
Je suis ravi,
Merci beaucoup, et à bientôt.