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

Eléphant du PHP | 160 Messages

14 sept. 2006, 21:36

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

Mammouth du PHP | 19672 Messages

14 sept. 2006, 21:48

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; }
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 160 Messages

14 sept. 2006, 22:09

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.