La solution avec le nombre le moins élevé d'instructions if
dans ma réponse est la dernière.
Malheureusement, il n'y a aucun moyen de le faire ainsi <select selected="2">
. Vous aurez à faire quelque chose comme ceci:
<select name="select">
<option value="1"<?php if ($_GET['select'] == '1'): ?> selected="selected"<?php endif; ?>>Option 1</option>
<option value="2"<?php if ($_GET['select'] == '2'): ?> selected="selected"<?php endif; ?>>Option 2</option>
<option value="3"<?php if ($_GET['select'] == '3'): ?> selected="selected"<?php endif; ?>>Option 3</option>
</select>
Si vous permettez mutliples, j'utiliser in_array
et assurez-vous que le nom de l'élément select
précise que c'est un tableau (en utilisant les crochets).
<select multiple="multiple" name="multi_select[]">
<option value="1"<?php if (in_array('1', $_GET['multi_select'])): ?> selected="selected"<?php endif; ?>>Option 1</option>
<option value="2"<?php if (in_array('2', $_GET['multi_select'])): ?> selected="selected"<?php endif; ?>>Option 2</option>
<option value="3"<?php if (in_array('3', $_GET['multi_select'])): ?> selected="selected"<?php endif; ?>>Option 3</option>
</select>
Comme alternative, vous pouvez utiliser un PHP array
pour créer les options et une boucle foreach
pour créer le option
.
<select name="select">
<?php
$options = array(
1 => 'Option 1',
2 => 'Option 2',
3 => 'Option 3'
);
foreach ($options as $value => $name)
{
echo '<option value="' . $value . '"' . ($_GET['select'] == $value ? ' selected="selected"' : '') . '>' . $name . '</option>';
}
?>
</select>
Pouvez-vous nous montrer comment les listbox est en cours de sortie? Est-il sorti en PHP? – EdoDodo