Bonjour à tous,
J'ai un formulaire html contenant un select qui ressemble à ça :
Les valeurs possibles des options sont :
- 1,2
- 1
- 2
Mon problème est avec le selected et les if qui ont un comportement que je n'arrive pas à comprendre.
Lorsque je sélection l'option Tout (valeur 1,2) le résultat html est :
"Tout" est bien marqué selected mais aussi "Non soldée" qui correspond à 1 et non 1,2. Dans ce cas c'est l'option "Non soldée" qui est sélectionnée dans le select car c'est la dernière.
Je fais le même test en sélectionnant "Non soldée" (1) ou "Soldée" (2) et là pas de problème se sont bien les bonnes options qui sont sélectionnées.
J'ai essayé de modifier les opérateurs php de == à === mais même punition. J'imagine que c'est le 1,2 qui pose problème mais je vois pas trop comment contourner le problème sauf à mettre des valeurs bien distinctes mais ça m'impose un préalable pour faire correspondre mes valeurs en DB et celle pour le html.
Est-ce que vous auriez une idée ?
Merci d'avance.
Modifié par flipflip (29 Apr 2019 - 11:57)
J'ai un formulaire html contenant un select qui ressemble à ça :
// Valeur par défaut
if(!isset($value['ordsta'])) { $value['ordsta'] = '1,2'; }
$selected = '';
echo '----'.$value['ordsta'].'<br />';
echo '<select name="ordsta">';
if($value['ordsta'] == '1,2') {
$selected = ' selected';
}
echo '<option value="1,2"'.$selected.'>Tout</option>';
for($i=1; $i<=2; $i++) {
$selected = '';
if($i == $value['ordsta']) {
$selected = ' selected';
}
echo '<option value="'.$i.'"'.$selected.'>'.$this->_portailUtils->getStatus($i, 'sorder').'</option>';
}
echo '</select>';
Les valeurs possibles des options sont :
- 1,2
- 1
- 2
Mon problème est avec le selected et les if qui ont un comportement que je n'arrive pas à comprendre.
Lorsque je sélection l'option Tout (valeur 1,2) le résultat html est :
----1,2
<select name="ordsta">
<option value="1,2" selected>Tout</option>
<option value="1" selected>Non soldée</option>
<option value="2">Soldée</option>
</select>
"Tout" est bien marqué selected mais aussi "Non soldée" qui correspond à 1 et non 1,2. Dans ce cas c'est l'option "Non soldée" qui est sélectionnée dans le select car c'est la dernière.
Je fais le même test en sélectionnant "Non soldée" (1) ou "Soldée" (2) et là pas de problème se sont bien les bonnes options qui sont sélectionnées.
J'ai essayé de modifier les opérateurs php de == à === mais même punition. J'imagine que c'est le 1,2 qui pose problème mais je vois pas trop comment contourner le problème sauf à mettre des valeurs bien distinctes mais ça m'impose un préalable pour faire correspondre mes valeurs en DB et celle pour le html.
Est-ce que vous auriez une idée ?
Merci d'avance.
Modifié par flipflip (29 Apr 2019 - 11:57)