par
guilt92 » 08 sept. 2008, 11:24
Bonjour,
Le problème est toujours le même en fait :
Tu as un champ "Nombre de chambres" qui va provoquer la validation de ton formulaire, indépendamment du nombre de chambre déjà présente.
Ensuite en fonction de cela tu vas afficher un ou plusieurs input, avec des valeurs dedans si elles ont été rentrées.
Ton problème, c'est que tu ne teste l'existence que d'une valeur de $surfacechambreIs alors que derrière tu utilises $surfacechambreIs[$i].
Prenons le cas suivant :
Une personne choisit 2 chambres.
Le formulaire s'actualise et tu affiches deux champs en cherchant la valeur 1 (inconnue) et la valeur 2 (inconnue) de ton tableau. D'ou les erreurs. Après si tu valides à partir de ce cas en choisissant un nombre moins élevé de chambre ca marche, mais plus élevé ca ne marche pas car tu cherches a afficher la valeur $surfacechambreIs[$i] meme si elle n'existe pas.
La solution selon moi serait plutot de faire quelque chose du style :
//Affichage input surfacechambre en fonction du nombre de chambre sélectionné
if ($nombredechambreIs >= 1)
{
for($i=0; $i<$nombredechambreIs; $i++)
{
print "<li><img src='img/spacer.jpg' width='35' height='1' />
<img src='img/surface-en-m2-1.jpg' />
<img src='img/spacer.jpg' width='40' height='1' />";
$value_surface = "";
if (isset($surfacechambreIs[$i])) $value_surface = $surfacechambreIs[$i];
print"<input type='text' style='background: #A2A2A2;' name='surfacechambre[$i]' size='10'
maxlength='40' value='".$value_surface."' />
</li>";
}
}
Ce code générera peut etre des erreurs mais l idée est la suivante : on ne fait pas varier le nombre de champs en fonction du isset mais seulement la valeur. Si la valeur est définie on l affiche, sinon on affiche un champ vide.
J espere que cela t aidera.