Bonjour à tous,
Je rencontre un petit problème, la comparaison 'string' == 0 renvoi... true !
Autrement dit si je tape :
L'écran affichera 'incohérence'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if('banane' == 0) { echo 'incohérence'; } else { echo 'cohérence'; }
Cela peut sembler ridicule, mais ce grain de sel s'avère extrêmement problématique pour moi, je m'explique rapidement, afin que vous compreniez mieux :
Je développe actuellement un site, qui présente des listes de données. En haut de l'écran, j'ai placé quatre listes déroulantes (<select><option>), permettant de filtrer les données affichées à l'écran.
Actuellement, je cherche à conserver sélectionnée la valeur choisit dans la liste déroulante, et ce, même après avoir posté le formulaire.
Pour cela, une fonction test la liste des <option>, et lui ajoute 'selected' si la value du <option> correspond à la valeur postée.
Le problème est que certaines de ces values valent 0, et que lorsque la fonction les compare à une valeur postée valant une string, elle ajoute à tord le 'selected' car pour elle 'string' = 0.
Exemple concret :
Dans cette exemple, si la valeur postée est égale à 'indifferent' (valeur par défault du filtre => l'utilisateur veut afficher toutes les données), lorsque la value vaudra $value = 0, la fonction jugera 'indifferent = 0 et ajoutera le 'selected' pour la value 0, alors qu'elle aurait du le faire pour la value 'indifferent'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if($_POST['filtre1'] == $value) { $listeOptions .= '<option selected...................etc></option>'; } else { $listeOptions .= '<option...................etc></option>'; }
Avez-vous une idée simple, pouvant m'éviter de recommencer l'ensemble de la structure de mon site ?
Merci d'avance
Partager